在angularjs中更新lat long后,Maker无法绘制

时间:2019-02-05 10:00:00

标签: javascript angularjs google-maps navigator

我在Google地图上使用http://angular-ui.github.io/angular-google-maps/#!/,但标记仅在第一次绘制。如果我更新纬度-经度,则唯一的地图在移动而不是标记。

这是我的代码:(当前位置)

navigator.geolocation.getCurrentPosition((position) => {
      vm.latitude_obj=position.coords.latitude;
      vm.longitude_obj=position.coords.longitude;
    });
          vm.map={center: {latitude: '28.454035292774627', longitude: '77.02379857578137' }, zoom: 12 };
          vm.options={scrollwheel: false};
          vm.marker = {
              id: 0,
              coords: {
                  latitude: 28.454035292774627,
                  longitude: 77.02379857578137
              },
              options: { draggable: true },
              events: {
                  dragend: function (marker, eventName, args) {
                      var lat = marker.getPosition().lat();
                      var lon = marker.getPosition().lng();
                      }
                  }
              };

更新位置后:

vm.map = {center: {latitude: vm.latitude_obj, longitude: vm.longitude_obj }, zoom: 12 };
            vm.options = {scrollwheel: false};
            vm.marker = {
            id: 0,
            coords: {
                latitude: vm.latitude_obj,
                longitude: vm.longitude_obj
            },
            options: { draggable: true },
            events: {
                dragend: function (marker, eventName, args) {
                    vm.lat = marker.getPosition().lat();
                    vm.lon = marker.getPosition().lng();
                    $scope.vm.listingModal.latitude=vm.lat;
                    $scope.vm.listingModal.longitude=vm.lon;
                    vm.locationSelected='Location Changed to '+vm.lat+', '+vm.lon;
                }
            }
            };

在此代码图中,地图从当前位置移动到新位置,但标记未移动。 有人可以告诉我我在做什么错。

先谢谢了。快乐编码

1 个答案:

答案 0 :(得分:0)

更新纬度和经度后,设置标记的位置

marker.setPosition(myLatlng);

其中myLatlng是格式的对象

myLatlng = {lat: latitude_value, lng: longitude_value}