【问题标题】:google maps api autocomplete show map preview of locationgoogle maps api自动完成显示位置的地图预览
【发布时间】:2018-01-24 11:58:08
【问题描述】:

我正在使用 google maps api 自动完成功能来搜索机构所在的城市和国家/地区。 为此,我有一个输入字段和搜索位置的地图预览。 这是 jsfiddle,但目前无法正常工作 (https://jsfiddle.net/rxp7hdLk/2/)

问题是:

当我搜索某个位置时,它会获取其城市和国家/地区,但不会更新该位置的地图预览。它被锁定在默认预览中。

我目前有以下几点:

autocomplete.addListener('place_changed', function(){
        infowindow.close();
        marker.setVisible(false);
        var place = autocomplete.getPlace();
        if (place.geometry.viewport) {
            map.fitBounds(place.geometry.viewport);
        } else {
            map.setCenter(place.geometry.location);
            map.setZoom(17);
        }
        marker.setIcon( /** @type {google.maps.Icon} */ ({
            url: place.icon,
            size: new google.maps.Size(71, 71),
            origin: new google.maps.Point(0, 0),
            anchor: new google.maps.Point(17, 34),
            scaledSize: new google.maps.Size(35, 35)
        }));
        marker.setPosition(place.geometry.location);
        marker.setVisible(true);

【问题讨论】:

    标签: javascript angularjs google-maps google-maps-api-3 angularjs-scope


    【解决方案1】:

    一开始就让你的变量全局化:

    var map;
    var marker;
    $scope.city = '';
    $scope.country = '';
    

    【讨论】:

      【解决方案2】:

      您正在添加两个函数/侦听器来做同样的事情。

      请在您的应用程序中删除与自动完成上的 ng-change 相关的相关代码(cityCode,两个函数):

      ng-change="cityCode()"
      

      也在你的控制器中:

      $scope.cityCode = cityCode;
      
      function cityCode() {
      

      释放 cityCode() 内部的代码和控制器本身内部的代码。根本不需要cityCode。

      这是working fiddle

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-09
        • 2012-03-15
        • 2023-03-12
        • 2014-07-03
        • 1970-01-01
        • 2015-08-22
        • 2015-09-30
        相关资源
        最近更新 更多