我有以下代码,但问题是,指向地址的引脚是不固定的,如果地图被移动,引脚保持在相同的位置,而不是停留在它被钉住的地方。
控制器
$scope.map = {
center: {
latitude: location.lat,
longitude: location.long
},
zoom: 17,
formattedAddress: location.formatted_address
}视图
<ui-gmap-google-map
class="col-md-12"
center="map.center"
zoom="map.zoom"
ng-cloak>
<ui-gmap-marker coords="map.center" idkey="1" ng-cloak>
<ui-gmap-window>
<p>{{map.formattedAddress}}</p>
</ui-gmap-window>
</ui-gmap-marker>
</ui-gmap-google-map>发布于 2015-06-01 19:37:31
标记被设置在te地图的中心
<ui-gmap-marker coords="map.center" idkey="1" ng-cloak>在创建地图时,不要使地图中心和标记坐标成为相同的对象参考,这一点也很重要。
var coords = {lat: x, lng : x}
map.center = coords
marker.coords = coords因为这也会使标记移动。使用
marker.coords = Object.create(coords)发布于 2015-04-21 13:02:42
我遇到过一个类似的问题,即映射绑定到1个坐标属性,其中映射位于中心。然后我有一个标记,我想把它放在相同的位置。
当您移动地图时,绑定的'ui-gmap-google-map center=“map.center”属性发生了变化,标记也被绑定到相同的map.center属性,因此它也随之移动。
我用两个独立的坐标对象解决了这个问题。一个用于初始地图中心,另一个用于标记。那么拖动其中一个不会影响另一个。
(在我的情况下,我希望您可以省略‘ui-gmap-google-center= center="map.center"’,而只依赖标记的' fit‘属性来智能地拟合所有标记,而不必关心地图在哪里居中。我认为有一种方法可以用“bound”属性来实现,但是会循环遍历所有的标记,并计算出从左上角到右下角的最大的lat/long边界。
https://stackoverflow.com/questions/28327076
复制相似问题