如果在Google地图上搜索某个城市,例如柏林,则会显示柏林的市区边界(内部带有粉红色粗线的灰色虚线)。
是否可以使用Google Maps API进行相同的操作?
答案 0 :(得分:1)
我想你想在地图上勾勒出一个区域,在你的情况下是柏林市区。
我知道在美国有人口普查数据,所有县的经度和纬度都可以免费下载。我不确定德国是否有类似的东西,但谷歌搜索“长距离坐标轮廓柏林市政”显示了很多结果。
那么您在找到坐标后如何处理它们 - Google Maps API允许您根据地理坐标将多边形放在地图上。
我使用Geometry库的Google Encoded Polylines部分来存储我的多边形,然后在显示特定状态时重新显示它们。
示例强>
var map = new google.maps.Map(document.getElementById("googlemap"), myOptions);
var encodedpoints = "<encoded points string>";
var polyOptions = {
"strokeColor": '#000000',
"strokeOpacity": 1,
"strokeWeight": 1,
"fillColor": "#000000",
"fillOpacity": 0.5
};
polyOptions.path = google.maps.geometry.encoding.decodePath(encodedpoints)
var mypolygon = new google.maps.Polygon(polyOptions);
mypolygon.setMap(map);
此示例将在地图上放置一个具有黑色边框和50%不透明度黑色填充的多边形。您可以将选项更改为您想要的任何内容。
答案 1 :(得分:0)
我认为是,但逻辑可能非常疯狂。您可以将视图添加到MapView中,并使用Mapview的layoutparams,您可以指定地理经度和纬度。
这是我的“核方法”之一。我认为MapView对象本身可以告诉你mapview对象的宽度和高度。一旦这些东西在屏幕上绘制,您就可以测量mapview本身。从这里,您可以将像素转换为经度和纬度。您可以从此处将各种数据提供给视图以进行绘图。
现在,为了在地图上获得完美的图形轮廓,可能必须达到较低的水平并进行像素比较。
另一种选择是弄清楚如何追踪该区域的轮廓然后再渲染它。