gpt4 book ai didi

javascript - 如何转换 Google map 中的自定义叠加层以考虑投影?

转载 作者:行者123 更新时间:2023-11-30 06:48:44 25 4
gpt4 key购买 nike

我正在开发一个使用 Google Maps API v3 的应用程序。我想制作每边恰好 1000 公里的正方形自定义叠加层(每个叠加层实际上是一个 1000x1000 透明 png,每个像素代表 1 平方公里)。我当前的实现是这样的:

function PngOverlay(map,loc) {
this._png = null;
this._location = loc; //lat,lng of the square's center
this.setMap(map);
}

PngOverlay.prototype = new google.maps.OverlayView();

PngOverlay.prototype.onAdd = function() {
this._png = new Element('image',{ //using mootools
'src': pngForLoc(this._location),
'styles': {
'width': 1000,
'height': 1000,
'position': 'absolute'
}
});

var panes = this.getPanes();
panes.overlayLayer.appendChild(this._png);
}

PngOverlay.prototype.onRemove = function() {
this._png.parentNode.removeChild(this._png);
this._png = null;
}

PngOverlay.prototype.draw = function() {
var dp = this.getProjection().fromLatLngToDivPixel(this._location);
var ps = this._png.getSize();

var t = dp.y - (ps.y / 2);
this._png.setStyle('top',t);

var l = dp.x - (ps.x / 2);
this._png.setStyle('left',l);
}

我的问题是:如果有的话,我需要做什么来说明 Google map 的投影?我对墨卡托的有限理解是它保留了水平距离而不是垂直距离。我怎样才能适本地 transform() 我的 png 来解决这个问题?

最佳答案

确实没有足够的信息,但您可能会发现开源 proj4js 库很有用,因为它可以执行各种投影转换,例如。到 Google 的球面墨卡托投影系统。

关于javascript - 如何转换 Google map 中的自定义叠加层以考虑投影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3374071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com