我可以在Google地图中显示一个国家/地区(屏蔽掉)吗?

时间:2010-05-11 13:50:01

标签: google-maps

是否可以屏蔽GoogleMap中的邻居?就我而言,我只想在一个观点上展示瑞典。第二种观点只是挪威,丹麦等等......

我知道可以绘制多边形线并将它们相应地填充到Maps API上。问题是,或者结果集变得很大或线条变得非常粗糙等等......如果GoogleMaps可以在没有邻居的情况下交付一个国家,那将会很好。

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

3 个答案:

答案 0 :(得分:21)

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

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

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

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

您可以在Internet上的许多地方找到免费的地图数据,其中大部分都是ESRI shapefile格式。国家地图的一个很好的来源是http://www.gadm.org/,其最大优点是也可以提供KML / KMZ格式的数据。如果您需要将ESRI shapefile转换为KML,请查看好的(和免费的)OGR converter

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

答案 1 :(得分:4)

有一个类似的问题,并通过将gamps与融合表结合起来进行管理:

var table_id = 420419; //can be exchanged wit another table
var FT_Query = "SELECT 'kml_4326' FROM "+ table_id +" WHERE 'name_0' NOT EQUAL TO 'SWEDEN'";
var FT_Options =
    {
    suppressInfoWindows: true,
    query: FT_Query
    };
var layer =  new google.maps.FusionTablesLayer(table_id, FT_Options);
layer.setMap(map);

答案 2 :(得分:0)

您是否考虑过loading in a custom map?

我自己没有使用它,但希望链接可以帮助你一点:)