我切换一个地方公园到俱乐部分机时停止页面重新加载

时间:2014-06-15 13:56:39

标签: google-maps google-places

我正在调用公园标签类的初始化功能然后俱乐部标签类然后重新加载地图重新加载我想停止地图重新加载和打印公园时单击公园类和打印俱乐部时点击俱乐部类。相同的功能适用于其他一些类型。

function initialize(lat, lon, typ) {
                var pyrmont = new google.maps.LatLng(lat,lon);
                map = new google.maps.Map(document.getElementById('map'), {
                center: pyrmont,
                zoom: 15
                });
                //var latlng = new google.maps.LatLng(-24.397, 140.644);


                var request = {
                    location: pyrmont,
                    radius: 400,
                    types: [typ]
                };
                infowindow = new google.maps.InfoWindow();
                var service = new google.maps.places.PlacesService(map);
                service.nearbySearch(request, callback);
                var myCity = new google.maps.Circle({
          center: pyrmont,
          radius: 500,
          strokeColor: "#0000FF",
          strokeOpacity: 0.8,
          strokeWeight: 1,
          fillColor: "#0000FF",
          fillOpacity: 0.1,
          editable: true
        });

        myCity.setMap(map);


            }

            function callback(results, status) {
                if (status == google.maps.places.PlacesServiceStatus.OK) {

                    for (var i = 0; i < results.length; i++) {
                    createMarker(results[i]);
                    }
                }
            }

function createMarker(place) {
  var placeLoc = place.geometry.location;
   var marker = new google.maps.Marker({
    map: map,
    position: place.geometry.location,
    icon:'icone/'+typ+'.png',
  });

  google.maps.event.addListener(marker, 'click', function() {
    infowindow.setContent(place.name);
    infowindow.open(map, this);
  });
}

1 个答案:

答案 0 :(得分:0)

您不希望再次运行初始化函数,因为它会尝试创建另一个映射。

要查找新的地点集,您只需更改请求数组并再次调用nearbySearch函数。以下是用户更改“类型”时需要执行的操作的顺序。

  • 请求数组已更改为具有新类型(request = {......})
  • 再次调用searchNearby函数以引入新的地方
  • 在回调函数中,清除地图上旧“类型”的标记

要完成所有这些操作,您应该将地图设置为全局变量,以便可以从任何函数中引用它。同样,您应该将标记存储在全局数组中,以便在选择新类型时可以循环显示它以轻松删除它们。