Ich kann nicht herausfinden, warum das von getProjection() zurückgegebene Objekt nicht definiert ist. Hier ist mein Code:Google Maps v3 OverlayView.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);
Mein Fehler ist: Kann nicht nennen Methode ‚fromLatLngToContainerPixel‘ undefinierter
BTW: Ich klebte das jquery Teil zu zeigen, dass Mein Kartenobjekt (HAR.map) funktioniert. Ich habe mehrmals bestätigt, dass die Funktionen getCenter() und getZoom() tatsächlich korrekte Werte zurückgeben. Also ist das HAR.map-Objekt echt. –