在谷歌地图上突出显示整个国家

37

我有一个关于Google地图的一般性问题。我只想使用Google地图来查看德国,但是邻国也会显示在地图上。德国的边界很少可见。

有没有可能将其他未使用的国家淡化显示?


1
有人之前问过类似的问题(https://dev59.com/tHA85IYBdhLWcg3wEPRL#2958856)。如果您有边界的坐标,您可以使用我在那个问题中回答的方法来反转多边形。如果您没有边界的坐标,您可以在网上找到它们,或者使用谷歌地图“我的地点”绘制边界并获取坐标。 - Mark
这个回答解决了你的问题吗?Google Maps API v3如何在不使用多边形的情况下突出显示国家边界 - MrUpsidown
6个回答

51

我能够使用公共的世界国家边界.kml Fusion Table来完成此操作。

您需要将其添加为地图的Fusion Table 图层


首先,初始化一张地图,将其缩小到最大值,让我们可以看到大多数国家:

var map = new google.maps.Map(document.getElementById('map-canvas'), {
  center: new google.maps.LatLng(30,0),
  zoom: 2,
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

接下来添加FusionTablesLayer

var world_geometry = new google.maps.FusionTablesLayer({
  query: {
    select: 'geometry',
    from: '1N2LBk4JHwWpOY4d9fobIn27lfnZ5MDy-NoqqRpk'
  },
  map: map,
  suppressInfoWindows: true
});

看起来是这样的:

所有国家


关于这个问题:

有没有可能将未使用的其它国家淡化?

如果你查看融合表(Fusion Table),你会看到有 NameISO_2DIGIT 两列。我们可以通过向 FusionTablesLayer 传递一个 where 条件来对这些进行筛选,例如:

  query: {
    select: 'geometry',
    from: '1N2LBk4JHwWpOY4d9fobIn27lfnZ5MDy-NoqqRpk',
    where: "ISO_2DIGIT IN ('US', 'GB', 'DE')"
  },

给予:

使用where筛选国家


2
即使您更改颜色,这仍然非常丑陋。特别是在覆盖国家名称的图层上面。 - Jeroen K
2
你说得很有道理,我已经在这里创建了一个问题(https://code.google.com/p/fusion-tables/issues/detail?id=1308)。 - davetapley
是否可以选择高亮颜色? - Haya Raed
@HayaRaed 是的,参见文档中的Fusion Table Styles - davetapley
7
FYI:Fusion Tables现已被弃用,下个月将被移除。 - Martin Zvarík
现在Fusion Tables已经被弃用了,有没有一种方法可以实现这个? - Cristian

10

有没有一种方法可以自定义地图并应用缩放和平移? - Cristian

3
14年(!)前有人提出了原始功能请求,现在谷歌已经启用了数据驱动的样式

你们最常要求的功能之一是访问与 Google Maps 中用于构建信息丰富、引人入胜的地图相同的边界和多边形。今天,我们很高兴地宣布 Maps JavaScript API 的预览版发布了数据驱动样式,使您能够显示和设计 Google 边界。

这里有一个演示和官方文档


3

虽然这个问题早就有人问过了,但是如果你不需要地图可拖动的话,Google已经弃用的Map Charts API看起来是更好的解决方案:

https://developers.google.com/chart/image/docs/gallery/new_map_charts

示例:https://chart.googleapis.com/chart?cht=map:fixed=-60,0,80,-35&chs=600x350&chld=CA-BC|CN|IT|GR|US-UT&chdl=Vancouver|Beijing|Torino|Athens|Salt+Lake+City&chco=B3BCC0|5781AE|FF0000|FFC726|885E80|518274&chtt=Last+Five+Olympic+Hosts&chm=f2010+Winter,000000,0,0,10|f2008+Summer,000000,0,1,10|f2008+Winter,000000,0,2,10,1,:-5:10|f2004+Summer,000000,0,3,10|f2004+Summer,000000,0,4,10

enter image description here

这个API将至少持续到2015年4月:https://developers.google.com/chart/terms

重要提示:Google Chart Tools的Image Charts部分已于2012年4月20日正式弃用。根据我们的弃用政策,它将继续工作。


0

1
从谷歌地图的角度来看,对于您来说最好的方法是使用谷歌图表工具http://code.google.com/apis/chart/interactive/docs/gallery/geomap.html,如果您想利用谷歌地图,则需要叠加和突出德国地图,就像这里的美国地图一样http://econym.org.uk/gmap/example_egroundoverlay.htm。 - defau1t
1
@defau1t 感谢您的修复 - 昨天 jvectormap.owl-hollow.net 根本不存在。 - Olli
@Olli:没错,链接是失效了,但不是404。我看到今天有人给这篇文章投了反对票,所以很好奇可能的原因是什么? - defau1t
@defau1t,你能修复帖子中的链接吗?...owl-hollow...没有响应。 - martin jakubik
@martinjakubik:这是您需要的链接http://jvectormap.com/maps/countries/germany/ 如果您发现任何有用的帖子,请确保投票支持答案 :) - defau1t
显示剩余6条评论

0

目前(API版本3),似乎不存在增加单个国家边框厚度的可能性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接