google-maps - 谷歌地图 v3 OverlayView.getProjection()

标签 google-maps google-maps-api-3

我似乎无法弄清楚为什么 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);

我的错误是:无法调用未定义的“fromLatLngToContainerPixel”方法

最佳答案

实际上,发生这种情况的原因是因为平移/缩放后 map 空闲后创建投影对象。因此,更好的解决方案是监听 google.maps.Map 对象的 idle 事件,并获取对那里投影的引用:

// Create your map and overlay
var map;
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(map);
var projection;

// Wait for idle map
google.maps.event.addListener(map, 'idle', function() {
   // Get projection
   projection = overlay.getProjection();
})

关于google-maps - 谷歌地图 v3 OverlayView.getProjection(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3710745/

相关文章:

javascript - angular2-google-maps 模态问题

google-maps - 谷歌地图搜索框FOUC

javascript - Google Maps Tile Overlays - 在调用图 block 时避免 404 错误?

javascript - Google Maps API v3 - 初始化后添加标记

javascript - 按需加载 javascript 依赖项

苹果手机 : embed a fully integrated customized (Google) map in a native app

jquery - 在 gmap 上移动鼠标滚轮时避免放大/缩小

java - 安装 Google Maps SDK Beta 3.1.0 时出错 Could not filnd :places-map-sdk-3. 1.0-beta:

javascript - python 的 Maps api 几何库

android - 提取谷歌地图地点数据(特别是汽油价格)