Php 在谷歌地图中使用getTile()函数的正确方法
我正在使用tiles id在数据库中存储标记 因此,当某个平铺显示在地图上时,该平铺包含的所有标记都将被删除 请求并显示 所以我最终创建了一个无法正常工作的代码。它没有要求所有需要的东西 瓷砖。更准确地说,每次我移动地图时,它只需要一块瓷砖Php 在谷歌地图中使用getTile()函数的正确方法,php,javascript,jquery,ajax,google-maps,Php,Javascript,Jquery,Ajax,Google Maps,我正在使用tiles id在数据库中存储标记 因此,当某个平铺显示在地图上时,该平铺包含的所有标记都将被删除 请求并显示 所以我最终创建了一个无法正常工作的代码。它没有要求所有需要的东西 瓷砖。更准确地说,每次我移动地图时,它只需要一块瓷砖 ServerFetchMapType.prototype.tileSize = new google.maps.Size(256,256); ServerFetchMapType.prototype.maxZoom = 100;
ServerFetchMapType.prototype.tileSize = new google.maps.Size(256,256);
ServerFetchMapType.prototype.maxZoom = 100;
ServerFetchMapType.prototype.name = "Server Tile #s";
ServerFetchMapType.prototype.alt = "Server Data Tile Map Type";
ServerFetchMapType.prototype.getTile = function(coord, zoom, ownerDocument){
if(zoom>10){
var tileId=this.getAddrLatLng(coord,zoom);
if(isTileAlreadyLoaded(tileId)){
return ;
}
ServerFetchedTiles[tileId] = true;
var url = "markerRequestPageJson.php?tileNumber=";
var json;
$.getJSON(url+tileId,function(json){
// this is where we can loop through the results in the json object
var _item;
var infoWindow = new google.maps.InfoWindow;
$.each(json, function(i,_item){
var point = new google.maps.LatLng(
parseFloat(_item.lat),
parseFloat(_item.lng));
var html = _item.id + "<br/>";
var marker = new google.maps.Marker({
map: map,
position: point
});
markerClusterer.addMarker(marker);
bindInfoWindow(marker, map, infoWindow, html);
});
});
}
return;
};
但最后,我做了一些改变,并按其应有的方式运作:
ServerFetchMapType.prototype.tileSize = new google.maps.Size(256,256);
ServerFetchMapType.prototype.maxZoom = 100;
ServerFetchMapType.prototype.name = "Server Tile #s";
ServerFetchMapType.prototype.alt = "Server Data Tile Map Type";
ServerFetchMapType.prototype.getTile = function(coord, zoom, ownerDocument){
if(zoom>10){
var tileId=this.getAddrLatLng(coord,zoom);
if(isTileAlreadyLoaded(tileId)){
return ;
}
ServerFetchedTiles[tileId] = true;
var div = ownerDocument.createElement('DIV');
var url = "markerRequestPageJson.php?tileNumber=";
var json;
$.getJSON(url+tileId,function(json){
// this is where we can loop through the results in the json object
var _item;
var infoWindow = new google.maps.InfoWindow;
$.each(json, function(i,_item){
var point = new google.maps.LatLng(
parseFloat(_item.lat),
parseFloat(_item.lng));
var html = _item.id + "<br/>";
var marker = new google.maps.Marker({
map: map,
position: point
});
markerClusterer.addMarker(marker);
bindInfoWindow(marker, map, infoWindow, html);
});
});
return div;
}
return;
};
我的问题:这是一个合适的解决方案吗?我不知道你在这里想做什么;但是为什么你要费心去点击正在加载的磁贴呢
您可以只给标记{position:the_position,…},Maps API应该负责显示它,不使用?平铺来请求当前在视口中的标记。和标记使用标记群集显示。更多信息可在此处找到: