我使用Google Maps API v3創建了自定義地圖。這是一個虛構世界的矩形地圖,而不是真實世界中的任何東西。地圖投影像素到LatLng比例?
我一直在閱讀關於如何在自定義Google地圖中使用投影的文章。我需要使用投影,因爲使用投影來放置標記和區域,它們不會水平重複。不管怎麼說,我把下面的代碼從一個教程:
var tilesize = 256;
function MyProjection(){}
MyProjection.prototype.fromLatLngToPoint = function(latLng)
{
var x = latLng.lng() * tileSize;
var y = latLng.lat() * tileSize;
return new google.maps.Point(x, y);
};
MyProjection.prototype.fromPointToLatLng = function(point)
{
var lng = point.x * (1.0/tileSize);
var lat = point.y * (1.0/tileSize);
return new google.maps.LatLng(lat, lng);
};
function LatLngToPixels(latLng)
{
var pnt = MyProjection.prototype.fromLatLngToPoint(latLng);
return [pnt.x * 8, pnt.y * 8];
}
function PixelsToLatLng(pxs)
{
var pnt = {x: pxs[0]/8, y: pxs[1]/8};
return MyProjection.prototype.fromPointToLatLng(pnt);
}
我已經把它應用到我的地圖,它似乎工作。但是,我試圖弄清楚如何改變投影的比例。當我放置這樣的標記時:
new google.maps.Marker(
{
map: map,
position: new google.maps.LatLng(0, 0)
});
標記放置在地圖的左上角。如果我這樣做:
new google.maps.Marker(
{
map: map,
position: new google.maps.LatLng(1, 1)
});
標記放置在右下角。
所以我基本上有一個最低的經度和緯度0和1一個最大的工作。我怎樣才能改變上述功能,使規模更具管理性?像0到90或0到180?從現實世界的經度和緯度座標來看,這有點更有意義嗎?或者這對於預測來說是不可能的?我有點被預測的思想,究竟他們的最終目的是使也許我錯過了點迷糊......