填写丹麦的特定地区 - 多边形?

时间:2016-05-31 21:49:38

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

我期待着#34;突出显示"丹麦的一个地区/特定地区,完全like it's seen here

我已经知道可以通过在地图上绘制大量多边形来绘制填充(或描边),示例:

var bermudaTriangleCoords = [
  new google.maps.LatLng(25.774252, -80.190262),
  new google.maps.LatLng(18.466465, -66.118292),
  new google.maps.LatLng(32.321384, -64.757370),
  new google.maps.LatLng(25.774252, -80.190262)
];    
var bermudaTriangle = new google.maps.Polygon({
  paths: bermudaTriangleCoords,
  strokeColor: '#FF0000',
  strokeOpacity: 0.8,
  strokeWeight: 2,
  fillColor: '#FF0000',
  fillOpacity: 0.35
});

如何像上面的初始链接一样绘制精确的填充?我可以以某种方式获得上面填充的经度和纬度坐标吗?或者我可以在哪里绘制并获取坐标?

FIDDLE - Google maps demo

2 个答案:

答案 0 :(得分:0)

您无法从引用的Google地图链接中获取坐标。多边形(让我们称之为边界)是谷歌地图应用程序的一部分,但没有API调用来检索它。

对于某些国家/地区,此类数据可用作geojson文件或shapefile。例如,US Census organisation为美国各州提供此类数据,英国已经进行了条例调查"也提供此类数据的组织,但不是免费的,也有一些商业组织(例如here他们有丹麦的邮政编码边界,​​但我似乎无法找到丹麦地区)。所以这是我给你的第一个建议,试着寻找类似的东西:"丹麦地区边界shapefile" (如果你懂丹麦语,试试丹麦语,你可能会找到一些我无法做到的网站)。获得shapefile后,您可以使用一些转换器(例如mapshaper)将其转换为geojson格式,然后在地图上加载多边形(here是一个关于如何加载的示例世界国家geojson到你的地图。你可以只加载一个国家/地区,如果你的geojson只包含坐标那么)

或者,您可以创建自己的非常简单的应用程序,它允许您在地图上绘制,然后将坐标打印到控制台。我为您创建了一个简单的应用程序,尝试在本地运行它。加载后,只需单击地图上的任意位置即可开始绘制多边形,一旦创建它,​​请观看javascript控制台以输出坐标。然后,您可以在bermudaTriangleCoords)中使用坐标:



function init() {
	
	var map = new google.maps.Map(document.getElementById('map'), {
		zoom: 8,
		center: new google.maps.LatLng(55.697683, 11.59711)
	});

	var drawing_manager = new google.maps.drawing.DrawingManager({
		map: map, 
		drawingMode: google.maps.drawing.OverlayType.POLYGON
	});
	
	google.maps.event.addListener(drawing_manager, 'polygoncomplete', function(polygon) {
          console.log("Polygon vertices coordinates following:");
	      polygon.getPath().forEach(function(el){
	         console.log(el.toString());
	      });
	});        
}

<script src="http://maps.google.com/maps/api/js?sensor=false&libraries=drawing&dummy=.js"></script>
<body style="margin:0px; padding:0px;" onload="init()">
	 <div id="map" style="height:400px; width:500px;"></div>	 
</body>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我使用此工具绘制kml点,然后我将用上面示例中的点替换点。您可以将kml设置更改为javascript,然后只需复制坐标。 http://www.birdtheme.org/useful/v3tool.html

这非常有用,希望它可以帮到你。