google-maps - 我可以在 Google map 中显示一个国家(询问)吗?

标签 google-maps

是否可以在 GoogleMap 中屏蔽邻国?就我而言,我只想从一个角度展示瑞典。在第二个 View 只是挪威,丹麦等......

我知道可以绘制多边形线并将它们相应地填充到 Maps API。问题是结果集变得巨大或者线条变得非常粗糙等等......如果谷歌地图能够在当时提供一个没有邻居的国家,那就太好了。

有谁知道与国家边界的良好坐标数据库?

最佳答案

如果将它们存储为 KML 文件格式并将它们加载为 KmlLayers,则可以在 map 中创建非常复杂的多边形而不会降低性能. KML 是一种基于 XML 的地理数据矢量文件格式。在 Google map 中使用 KML 文件的好处在于,它们在 Google 服务器上呈现为简单的 PNG 文件,无论原始多边形数据多么复杂,都可以随时匹配您的 map View 的当前分辨率和边界框。因此,所有复杂性都在 Google 的服务器端处理。

这是 sample of a project ,我在德国的一个联邦州使用过这样的掩蔽。 (在这种情况下,周围的环境并没有完全被屏蔽掉,只是变暗了。但是您也可以通过更改 KML 文件中填充颜色的 alpha 值来轻松地屏蔽它们。)

为了快速查看 KML 文件,也可以直接加载到 Google map 公共(public)网站(通过在搜索字段中输入其 URL)。这是我在上述项目中使用的 KML 文件,loaded directly into Google Maps . (我实际上在这里使用了一个 KMZ 文件,但这只是一个打包到 ZIP 存档中的 KML 文件。您可以使用普通的 ZIP 工具对其进行打包和解压缩。) 开始更新 07/2015:不幸的是,谷歌已经取消了直接进入的可能性当他们在 2014 年推出重新设计的版本时,将 KML/KMZ 文件的 URL 放入其公共(public) Google map 的搜索字段中。您仍然可以使用此答案中讨论的所有技术,但您不能通过在搜索中输入其 URL 来简单地预览 KML 文件领域了。如果需要上述KMZ做进一步分析,可以download it here .结束更新

请注意,Google 暗示了对 KML/KMZ 文件的大小限制(当前为 10 Mb 未压缩,3 Mb 压缩 - details see here)。如果您的 KML 文件太大,可以使用软件来降低复杂性(参见示例 herehere)。

您可以在 Internet 上的许多地方找到免费的 map 数据,其中大部分是 ESRI shapefile 格式。国家 map 的重要来源是 http://www.gadm.org/也具有以 KML/KMZ 格式提供数据的巨大优势。如果您必须将 ESRI shapefile 转换为 KML,请查看伟大的(免费)OGR converter .

请注意,仅当您的多边形是静态的(例如瑞典的边界)并且不依赖于任何用户输入时,KML 文件才是一种解决方案。对于动态多边形,您仍然必须使用 Maps API 的 Polygon 类,并具有您提到的复杂性限制。

关于google-maps - 我可以在 Google map 中显示一个国家(询问)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2811223/

相关文章:

android - 谷歌地图在兄弟动画后被拉伸(stretch)而不是调整大小

android - 如何将我的数据库的 AsyncTask 与 android 中的谷歌地图结合起来?

java - 自动通过 Intent 进行指示

javascript - 谷歌地图缩放功能不起作用

android - Android 设备上未显示 Google map 。

ios - GMSAutocompleteViewController 本地化

javascript - 将 .txt 文件中的坐标放入 Javascript 数组

android - GooglePlayServicesUtil 错误对话框按钮不执行任何操作

android - 从两个标记获取位置 - onMarkerDragEnd

jquery - Google map LatLong 选择器 - 1 个字段中的 latlong