我有一个Google地图应用程序,它在加载标记时绘制标记。新的要求之一是添加包含用户选择标记的多边形覆盖图。我能够使用几何控制来实现这一点,现在,下一步是形成一组选定的标记,为此我需要确定标记的纬度是否落在纬度范围内多边形?有没有办法确定多边形的经度并计算标记的经度是否在其边界之内?确定多边形内标记的纬度
2
A
回答
0
继npinti's suggestion,你可能想看看下面的点在多边形实现谷歌地图:
1
我从来没有直接搞乱谷歌地图,但可以存储构成多边形的点,然后使用the Point-In-polygon Algorithm来检查给定的经度和纬度点是否在多边形内。
1
// Create polygon method for collision detection
GPolygon.prototype.containsLatLng = function(latLng) {
// Do simple calculation so we don't do more CPU-intensive calcs for obvious misses
var bounds = this.getBounds();
if(!bounds.containsLatLng(latLng)) {
return false;
}
// Point in polygon algorithm found at http://msdn.microsoft.com/en-us/library/cc451895.aspx
var numPoints = this.getVertexCount();
var inPoly = false;
var i;
var j = numPoints-1;
for(var i=0; i < numPoints; i++) {
var vertex1 = this.getVertex(i);
var vertex2 = this.getVertex(j);
if (vertex1.lng() < latLng.lng() && vertex2.lng() >= latLng.lng() || vertex2.lng() < latLng.lng() && vertex1.lng() >= latLng.lng()) {
if (vertex1.lat() + (latLng.lng() - vertex1.lng())/(vertex2.lng() - vertex1.lng()) * (vertex2.lat() - vertex1.lat()) < latLng.lat()) {
inPoly = !inPoly;
}
}
j = i;
}
return inPoly;
};
0
这在v3中被更新。你可以通过google.maps.geometry.poly命名空间做这个计算API Documentation
相关问题
- 1. 确定纬度/经度是否在地球表面上的多边形内
- 2. 确定哪个是来自经纬度的多边形
- 3. 在不规则形状多边形内获取纬度/深度
- 4. 点上多边形(经度/纬度)
- 5. 检查纬度/长度组合是否位于多边形内
- 6. 检查位置(纬度经度)是否在KML多边形内
- 7. 纬度经度自定义多边形搜索MySQL
- 8. 从纬度/经度多边形获取边界框
- 9. 确定点是否在多边形内?
- 10. 确定点是否在多边形内
- 11. 确定线段内多边形
- 12. 的OpenLayers从多边形顶点获得纬度,经度
- 13. Google地图地理纬度/长度多边形的供应商
- 14. 以PHP计算多边形的纬度经度中心点
- 15. 使用Python计算纬度/经度多边形的面积
- 16. 纬度和经度作为坐标适合于多边形算法中的点
- 17. Mysql - 管理和查找经纬度内多边形内点的最佳方法
- 18. 确定多边形法线,多边形内部还是外部的点
- 19. 计算给定经度和纬度的地球凸包多边形区域
- 20. 将SVG多边形路径转换为纬度和经度坐标
- 21. 获取多边形名称时标记放置在多边形
- 22. 宽度鉴于这种SVG多边形SVG多边形标签
- 23. 查找多边形落在经/纬度组合内的在MySQL/PostgreSQL的
- 24. 用于确定收集经度/纬度坐标的最小边界矩形的算法
- 25. 如何确定UV纹理坐标n边多边形
- 26. 使用谷歌地图V3保存多边形的经纬度
- 27. 确定一定范围内的经度和纬度
- 28. Gmap.net只显示多边形内的标记
- 29. 从多边形内的融合表查找标记
- 30. 确定缩放级别以覆盖所有关于纬度/经度的标记
链接不再工作:/是否有更新的位置 – Ray 2013-04-17 16:34:49