我使用iOS SDK在iOS中使用Google地图,让用户使用少量标记标记区域,创建多边形。
我想突出显示该区域并使地图的其余部分变灰,如下所示:
这有可能吗?
您必须在创建灰色区域,清除区域和多边形边框的位置绘制自己的UIImage。之后,使用GMSGroundOverlay将其添加为叠加图块。这将在用户滚动时将其固定到位。
https://developers.google.com/maps/documentation/ios/overlays
这类似于为天气应用绘制雷达覆盖的方式。
我会使用几个步骤来解决这个问题。
1)从将定义多边形的用户收集您的点。
2)将点集合发送到您的服务器。(ajax post)
3)服务器端,动态创建一个灰色图像,其中有一个透明孔,即多边形。
4)在服务器上存储图像,发回回信息,告诉浏览器如何检索它(url,id,等等)。
5)使用javascript + google maps api,应用引用新创建的图像的叠加层。
每个步骤都可能遇到挑战,但如果您专注于不同的步骤,问题就变得易于管理。
1)和2)将涉及使用javascript,捕获“点击”并以地图上的线或某物的形式向用户反馈。完成后,服务器调用可以由用户或您的编程启动。
3)我将python与图像库(skimage等)和映射库(gdal)一起使用。制作图像并不难,但将其与GIS相结合并获得正确的投影等将需要一些摆弄。
4)一旦你走得那么远,应该不成问题。
5)使用zimmryan关于创建地面叠加层的评论可能对此步骤有所帮助。
祝好运!