Sencha Touch - 谷歌地图和居中标记

Posted

技术标签:

【中文标题】Sencha Touch - 谷歌地图和居中标记【英文标题】:Sencha Touch - Google Map and centering a Marker 【发布时间】:2013-02-23 14:41:05 【问题描述】:

只是我还是 google maps api 似乎有点古怪? 尝试简单地显示一些坐标的标记,然后将屏幕居中放置在标记上。

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

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 相关,但更多的是 google api 的怪癖。

【问题讨论】:

如果你使用googleMap.setCenter(pos);会发生什么 我尝试 marker.getPosition() 的原因是我看到了一个使用它的示例,但它实际上与使用 .setCenter(pos) 相同 【参考方案1】:

你必须在一个小的超时时间内将它居中,这样才能正常工作。

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

不知道是不是bug,但是showcase里有这种方式。

【讨论】:

很奇怪,这似乎可以解决问题。应该是时间问题。我想我也必须将设置的缩放级别放在回调中。谢谢。

以上是关于Sencha Touch - 谷歌地图和居中标记的主要内容,如果未能解决你的问题,请参考以下文章

居中所有标记和折线谷歌地图插件颤振适合屏幕

Sencha Touch 2 谷歌地图啥都不做

sencha touch 2 中的谷歌地图实现(MVC 方式)

Sencha touch 2:地图标记标题

如何使用 sencha touch 和 phoneGap 构建的谷歌地图提高应用程序的性能?

Sencha Touch - 在 Maprender 之后向地图添加标记