我需要在绘制的折线上找到坐标(lat,lng)以显示工具提示,而不是我用来绘制路径的坐标。 任何人都可以帮助我吗? :(
答案 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作为路径输入。