查找折线上的(lat,lng)

时间:2015-03-16 10:14:10

标签: jquery google-maps-api-3 geocode

我需要在绘制的折线上找到坐标(lat,lng)以显示工具提示,而不是我用来绘制路径的坐标。 任何人都可以帮助我吗? :(

1 个答案:

答案 0 :(得分:1)

您面临的问题是您正在使用geodesic参数,该参数会强制按照地球曲率绘制折线,但是,当您决定在哪里绘制工具提示时,您决定跟随并寻找直线点对点线和距离。

为了避免过多地重新发明轮子,我已经从另一个JS lib中清除了this piece of code。 jsfiddle不允许我使用它作为外部参考,它不是任何CDN,所以直接复制意大利面的借口。替代方案意味着完全重新实现Vincenty方程的解决方案。

从那里开始,重新设计你的功能是一件简单的事情:

var getPoint = function(path, percentage) {
  var p1 = new LatLon(path.getAt(0).lat(), path.getAt(0).lng());
  var p2 = new LatLon(path.getAt(1).lat(), path.getAt(1).lng());
  var bearing = p1.bearingTo(p2);
  var d = p1.distanceTo(p2);
  var o = p1.destinationPoint(d * percentage, bearing);
  return new google.maps.LatLng(o.lat, o.lon);
};

结果:http://jsfiddle.net/E45Su/70/

请注意,Google Maps API上的严重依赖,因为它需要MVCArray作为路径输入。