相关疑难解决方法(0)

1761
推荐指数
23
解决办法
82万
查看次数

Google Maps V3:仅在视口中显示标记 - 清除标记问题

我喜欢使用谷歌地图创建一个可以处理大量标记(超过10,000)的地图.为了不减慢地图速度,我创建了一个XML文件,它只输出当前视口内的标记.

首先,我使用initialize()来设置地图选项:

function initialize() {
    var myLatlng = new google.maps.LatLng(51.25503952021694,3.27392578125);
    var myOptions = {
        zoom: 8,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    google.maps.event.addListener(map, 'tilesloaded', function () {
    loadMapFromCurrentBounds(map);
    }); 
}
Run Code Online (Sandbox Code Playgroud)

当事件'tilesloaded'完成后,我使用loadMapFromCurrentBounds(),这个函数将获取当前边界并向XML文件发送请求以显示当前视口内的标记:

function loadMapFromCurrentBounds(map) {

    // First, determine the map bounds
    var bounds = map.getBounds();

    // Then the points
    var swPoint = bounds.getSouthWest();
    var nePoint = bounds.getNorthEast();

    // Now, each individual coordinate
    var swLat = swPoint.lat();
    var swLng = swPoint.lng();
    var neLat = nePoint.lat();
    var neLng …
Run Code Online (Sandbox Code Playgroud)

javascript google-maps google-maps-api-3 google-maps-markers

29
推荐指数
4
解决办法
3万
查看次数

点击地图关闭谷歌地图中的信息窗口?

我正在制作一个移动网络应用.

该应用程序的一部分删除了几个标记,可以单击它们打开信息窗口.令人恼火的是,如果你继续使用地图而不承认它们,这些不会消失,就像iOS地图应用程序一样.

有没有办法设置它,以便如果用户点击底层地图,所有打开的信息窗口都关闭?

google-maps-api-3

29
推荐指数
3
解决办法
3万
查看次数

Google Maps API v3 - 如何清除叠加层?

在Google Maps API v2中,我使用map.clearOverlays()删除标记并再次绘制它们.

如何使用Google Maps API v3执行此操作?

谢谢

api google-maps google-maps-api-3

23
推荐指数
2
解决办法
7万
查看次数

在Google Maps API v3中删除标记

我正在尝试删除像这样初始化的标记:

marker = new google.maps.Marker({
    position: latLng,
    map: map,
    draggable: true,
    animation: google.maps.Animation.DROP,
    title: 'Marker 1',
    icon: redPin
});

google.maps.event.addListener(marker, "click", function() {
    showMarkerDialog(marker.position, "marker");
});

google.maps.event.addListener(marker, "dblclick", function() {
    // Add a alert: Are you sure you want to remove this marker?

    map.removeOverlay(marker);
});
Run Code Online (Sandbox Code Playgroud)

一切都很完美,除了当我双击它以删除我在错误控制台上得到的是这样的:

TypeError:Object#没有方法'removeOverlay'

我究竟做错了什么?

javascript google-maps-api-3 google-maps-markers

23
推荐指数
1
解决办法
9万
查看次数

Google Maps Api v3 - 如何删除群集图标?

如何从地图中删除所有群集图标(群集标记)?尝试过如下建议:

Google Maps API v3:如何删除所有标记?

......但它没有奏效.

你能帮我解决这个问题吗?

先感谢您!

更新时间(2010-11-23)

标记存储在数组中

var markersClust = Array();
Run Code Online (Sandbox Code Playgroud)

...并添加(与php结合):

markersClust.push(marker_<?php echo $team["Team"]["id"]; ?>);

var markerClusterer = new MarkerClusterer(MyMap.map, markersClust, clusterOptions);
Run Code Online (Sandbox Code Playgroud)

它工作正常.

但是,我无法将它们从地图中移除,它驱使我......

试图删除标记(和我做)

for ( var i=0; i < markersClust.length; i++) {
    markersClust[i].setMap(null);
}
markersClust = []; 
Run Code Online (Sandbox Code Playgroud)

但群集图标在地图上是静止的.

我也尝试过这样的事情:

markerClusterer.clearMarkers();
Run Code Online (Sandbox Code Playgroud)

并喜欢

MyMap.preventDefault();
MyMap.stopPropagation();
MyMap.clearMarkers();
Run Code Online (Sandbox Code Playgroud)

但是,在地图上,群集的图标仍然存在.

我还需要做些什么来从我的地图中删除这些群集图标?请帮忙...

google-maps-api-3 google-maps-markers markerclusterer

21
推荐指数
2
解决办法
3万
查看次数

尝试清除所有标记时,谷歌地图v3 setMap未定义

我见过这里有人可以解释这个功能:

// REMOVE All MARKERS FUNCTION
    // Removes all markers currently on map
    // PARAMS: None
    function removeAllMarkers(){// removes all markers from map
        if (markersArray) {
            for (i in markersArray) {
                markersArray[i].setMap(null);
                markersArray = [];
                markersInfoArray = [];
            };
        };
    };
Run Code Online (Sandbox Code Playgroud)

但我收到一个javascript错误...

中断错误markersArray [i] .setMap不是函数

该页面位于:http://www.focus-on-plants.com/locator.php

有任何想法吗???

<--------------- ---------------------更新>

我试过sugestions,也感动MarkersArray=[]markersInfoArray = []到了的for循环,所以我有这样的一面:

for( var i = 0; i < markersArray.length; i++ ){
    markersArray[i].setMap(null);
}
Run Code Online (Sandbox Code Playgroud)

但我得到了同样的结果 error markersArray[i].setMap is not a function

所以我环顾四周尝试了这种方法:

function …
Run Code Online (Sandbox Code Playgroud)

arrays jquery google-maps-api-3

4
推荐指数
1
解决办法
2万
查看次数

API V3动态更新标记位置

我有这个代码从xml文件中读取数据并将标记放在地图上.

我想要做的是每5秒自动读取一次xml文件,然后更新标记的位置.

我尝试将setInterval添加到函数中,但问题是前一个标记未被删除.只需在地图上添加另一个标记,依此类推.

(我不希望整个地图更新,只是标记)

<script type="text/javascript"> 


var map = null;



function createMarker(latlng, html) {
var contentString = html;

var image = new google.maps.MarkerImage('http://www.google.com/mapfiles/markerA.png',
new google.maps.Size(20, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));

var shadow = new google.maps.MarkerImage('http://www.google.com/mapfiles/shadow50.png',
new google.maps.Size(37, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));

var marker = new google.maps.Marker({
position: latlng,
map: map,
shadow: shadow,
icon: image,
zIndex: Math.round(latlng.lat()*-100000)<<5


});

google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString); 
infowindow.open(map,marker);

});

}




function initialize() {

var myOptions = {
zoom: 13,
center: new google.maps.LatLng(-18.432713,-70.317993), …
Run Code Online (Sandbox Code Playgroud)

google-maps google-maps-markers

4
推荐指数
1
解决办法
1万
查看次数

可以吗?GMap API V2中的clearOverlays()到Google Maps API V3?

我使用Google Maps API V3.

我迁移我的网站GMap API V2 - > V3.但是因为我使用了clearOverlays()方法在V2中一次删除了一个现有对象,并且删除了一个在V3中单独废除的对象.

V2

map.clearOverlays();
Run Code Online (Sandbox Code Playgroud)

V3

map.set_visible(false);
popup.close();
Run Code Online (Sandbox Code Playgroud)

好吗?或其他解决方案?

google-maps google-maps-api-3

1
推荐指数
2
解决办法
2万
查看次数

Google Maps API - 在从ajax页面加载新数据之前清除标记,折线

我从ajax页面加载标记和折线,每个请求数据显示在索引页面上,现在我想在从ajaxPage获取新数据之前清除数据(标记,折线,...)

索引页面:

var gmarkers = []; 
var map = null;
function initialize() {
  var myOptions = {
    zoom: 15,
    center: new google.maps.LatLng(35, 53),
    // mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }

  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  google.maps.event.addListener(map, 'click', function() {
        infowindow.close();
        });

}

var infowindow = new google.maps.InfoWindow(
  { 
    size: new google.maps.Size(150,50)
  });

function myclick(i) {
  google.maps.event.trigger(gmarkers[i], "click");
}

function createMarker(latlng, name, html) {
    var contentString = html;
    var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        zIndex: Math.round(latlng.lat()*-100000)<<5
        }); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery google-maps google-maps-api-3 google-maps-markers

1
推荐指数
1
解决办法
3263
查看次数