0
我使用tiles id在數據庫中存儲標記。在谷歌地圖中使用getTile()函數的正確方法
這樣當被顯示在地圖上某瓷磚的所有標記,這種瓷磚含有的
要求太顯示。
所以我最終創建了一個無法正常工作的代碼。它並沒有要求所有需要的瓷磚
瓷磚。爲了更加準確,每次移動地圖時都只需要一個圖塊。
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;
};
我的問題:它是一個妥善的解決辦法?
有關更多信息,請訪問:http://kashey.ru/maps/ajax-loading-as-tiles/ – knightOfSpring 2012-04-21 15:14:45