2013-02-23 59 views
3

只是我还是谷歌地图API似乎是古怪的一面? 试图简单地为某些坐标显示标记,然后将标记中心放在屏幕上。Sencha Touch - 谷歌地图和中心标记

在我的控制器从视图中触发:

onGoogleMapRender: function (googleMap) { 

     var long = record.get("Longitude"); 
     var lat = record.get("Latitude"); 

     var pos = new google.maps.LatLng(lat, long); 

     var marker = new google.maps.Marker({ 
      position: pos 
     }); 

     marker.setMap(googleMap); 
     googleMap.setCenter(marker.getPosition()); 
     googleMap.setZoom(14); 

    } 

看来放置标志在屏幕的中央,但是当我返回并显示在同一个屏幕的第二或第三时间,标志物添加,但这次标记不会居中。

有没有人得到这个工作正常?我不认为这是任何ST2相关的,但更多的是谷歌API的怪癖。

+0

如果您使用'googleMap.setCenter(pos);' – Nix 2013-02-23 14:48:48

+0

会发生什么我试过marker.getPosition()的原因是我看到了一个使用它的例子,但它与使用.setCenter(pos) – jaffa 2013-02-23 14:55:19

回答

3

你必须以小的超时为中心,它会正常工作。

setTimeout(function() { 
    googleMap.panTo(marker.getPosition()); 
}, 100); 

我不知道它是否是一个bug,但是这种方式显示在展柜中。

+0

奇怪的是,这似乎是诀窍。必须是时间问题。我想我也必须将设置的缩放级别放在回调中。谢谢。 – jaffa 2013-02-23 14:59:15

+0

也适用于我,谢谢 – 2014-02-12 12:39:05