我正在构建一个网络应用程序,它将根据按钮和点击事件在Google地图上动态突出显示某些美国州和加拿大省份。
计划A)多边形
我的主要想法是绘制多边形。为此我需要所有州和省轮廓的坐标列表(纬度+经度)(顺时针或逆时针)。在政府网站上,我发现了各种不同的格式(即E00),但我无法将这些格式转换为简单的坐标列表,我可以用它来在地图上创建标记或多边形。你有什么提示可以获得这些坐标吗?
计划B)叠加
AFAIK,如果您在Google地图上使用叠加层,当您进一步放大时它们会变得像素化(或者您可以叠加SVG吗?)在我的情况下,在最坏的情况下我需要50 + 11叠加(所有州和所有省份) )。谷歌地图仍然可以实现这一点,还是会变得非常慢?
我有点吃惊的是,没有一种直接的方式来突出显示州或省,因为我认为这对于使用地图API的人来说是一项非常常见的任务。
提前致谢
答案 0 :(得分:75)
答案 1 :(得分:3)
使用提供的XML,我创建了一个带有字典的JSON文件,其中包括50个州,华盛顿特区和加拿大各省的粗略轮廓,以解决SaltyNuts的评论以及Mike Williams关于加拿大没有任何内容的说明{ {3}}。
json是我用来为各省绘制多边形的人,用于需要不同细节级别或创建自己的坐标集的其他人。
答案 2 :(得分:0)
这是加拿大各省的信息。 我只复制了谷歌地图链接中的第一个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",
);