【发布时间】:2010-09-14 16:12:56
【问题描述】:
我似乎无法弄清楚为什么 getProjection() 返回的对象是未定义的。这是我的代码:
// Handles the completion of the rectangle
var ne = recBounds.getNorthEast();
var sw = recBounds.getSouthWest();
$("#map_tools_selat").attr( 'value', sw.lat() );
$("#map_tools_nwlat").attr( 'value', ne.lat() );
$("#map_tools_selng").attr( 'value', ne.lng() );
$("#map_tools_nwlng").attr( 'value', sw.lng() );
// Set Zoom Level
$("#map_tools_zoomlevel").attr( 'value', HAR.map.getZoom()+1 );
document.getElementById("map_tools_centerLat").value = HAR.map.getCenter().lat();
document.getElementById("map_tools_centerLong").value = HAR.map.getCenter().lng();
// All this junk below is for getting pixel coordinates for a lat/lng =/
MyOverlay.prototype = new google.maps.OverlayView();
MyOverlay.prototype.onAdd = function() { }
MyOverlay.prototype.onRemove = function() { }
MyOverlay.prototype.draw = function() { }
function MyOverlay(map) { this.setMap(map); }
var overlay = new MyOverlay(HAR.map);
var projection = overlay.getProjection();
// END - all the junk
var p = projection.fromLatLngToContainerPixel(recBounds.getCenter());
alert(p.x+", "+p.y);
我的错误是:Cannot call method 'fromLatLngToContainerPixel' of undefined
【问题讨论】:
-
顺便说一句:我粘贴了 jquery 部分以显示我的地图对象 (HAR.map) 确实有效。我已经多次确认 getCenter() 和 getZoom() 函数实际上返回了正确的值。所以 HAR.map 对象是合法的。
标签: google-maps google-maps-api-3