州/省的地理边界->谷歌地图多边形

37

我正在构建一个Web应用程序,根据按钮和点击事件,在谷歌地图上动态突出显示某些美国州和加拿大省份。

计划A)多边形

我的主要想法是绘制多边形。为此,我需要所有州和省份轮廓的坐标列表(纬度+经度)(顺时针或逆时针)。在政府网站上,我找到了各种不同的格式(即E00),但我很难将这些格式转换为我可以用于在地图上创建标记或多边形的简单坐标列表。你有什么技巧可以得到这些坐标吗?

计划B)覆盖层

据我所知,如果您在Google Maps上使用覆盖层,随着您进一步缩放,它们会变得像素化(或者您可以覆盖SVG吗?)。在我的情况下,最坏情况下我需要50个州和11个省份的覆盖层。这在Google Maps上仍然可行吗,还是它会变得无法使用?

我有点惊讶,因为似乎没有直接的方法突出显示一个州或省份,我认为这对于使用地图API的人来说是一个非常普遍的任务。

先行致谢


1
请查看这个问题 - Maarten
4个回答

80

我有美国州边界的XML文件在这里。 我像这样使用它们。

我故意保持细节相对简单,以减少加载时间,并得到一个在慢速浏览器中响应较快的地图。

我没有加拿大的任何东西。


2
@Mike Williams:为什么相邻州的边界拼起来如此不协调?我知道在分辨率上存在一定限制,但在相邻州之间出现缝隙和重叠(在更高级别的缩放下可见)没有合理的解释。 - Curd
1
你知道在哪里可以找到这个数据的城市级别吗? - MadHacker
7
请尝试使用Natural Earth数据集。它也可以在FusionTables中使用。 - geocodezip
这一组很棒,但缺少哥伦比亚特区 - 它被并入马里兰州了 :( - SaltyNuts
@Mike Willians,我也支持Curd的担忧。纽约和新泽西有重叠的地区:http://i.imgur.com/tjdSwPS.jpg - Bing
显示剩余6条评论

5
使用提供的XML,我创建了一个包括50个州、华盛顿特区和加拿大省份粗略轮廓的字典JSON文件,以回应SaltyNuts的评论以及Mike Williams关于没有任何加拿大内容的备注。这是JSON文件的链接BirdTheme的这个便捷在线工具是我用来绘制省份多边形的,对于需要不同级别的详细信息或创建自己的坐标集的其他人也很有用。

2

0
这是有关加拿大省份的信息。 我只复制了Google地图链接中的第一个GPS坐标。
/**
 * Searched for Alberta, Canada and copied the first thing after the @ sign
 * @see https://www.google.bg/maps/place/Yukon+Territory,+Canada/@64.5610006,-141.332713,5z/data=!3m1!4b1!4m5!3m4!1s0x51178198b4528b89:0x2e149cd561cc96ea!8m2!3d64.2823274!4d-135?hl=en
 * @var array
 */
$provinces_gps = array(
    "AB" => "54.1784838,-123.9541477",
    "BC" => "53.8348151,-135.5103986",
    "MB" => "54.1798816,-104.4465713",
    "NB" => "46.2679312,-68.6551949",
    "NL" => "53.1668149,-69.1783083",
    "NT" => "68.4817407,-136.7732486",
    "NS" => "45.2906308,-65.2759181",
    "NU" => "63.5954344,-124.1555502",
    "ON" => "48.9347914,-93.7155729",
    "PE" => "46.5031512,-63.7525627",
    "QC" => "53.4650568,-77.3895206",
    "SK" => "54.1797758,-114.6389862",
    "YT" => "64.5610006,-141.332713",
);

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