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 中的谷歌地图实现(MVC 方式)