我需要从使用 msa 和 msid 的谷歌地图 url 中提取经纬度数据

Posted

技术标签:

【中文标题】我需要从使用 msa 和 msid 的谷歌地图 url 中提取经纬度数据【英文标题】:I need to extract lat long data from a google maps url that uses msa and msid 【发布时间】:2015-06-02 20:35:45 【问题描述】:

当包装一些网页时,我得到了一个像这样的 iframe:

<iframe   frameborder="0" scrolling="no" margin margin src="http://maps.google.com/maps/ms?msa=0&amp;hl=pt-BR&amp;ie=UTF8&amp;vpsrc=0&amp;msid=206481929558161217795.0004aa2b76eb8211ac517&amp;z=17&amp;output=embed"></iframe>

代码的重要部分是url:

http://maps.google.com/maps/ms?msa=0&hl=pt-BR&ie=UTF8&vpsrc=0&msid=206481929558161217795.0004aa2b76eb8211ac517&z=17&output=embed

问题是:

如何从这个 google maps url 获取纬度和经度数据?

【问题讨论】:

【参考方案1】:

纬度和经度不可作为该 URL 的一部分。如果您从该地图下载 KML,解压缩生成的 KMZ 文件并查看其中包含的 KML,您将看到(显示标记的坐标):

<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns='http://www.opengis.net/kml/2.2'>
    <Document>
        <name>Untitled layer</name>
        <Placemark>
            <styleUrl>#icon-22</styleUrl>
            <name>Residencial Buena Vista</name>
            <ExtendedData>
            </ExtendedData>
            <Point>
                <coordinates>-49.281449,-16.689937,0.0</coordinates>
            </Point>
        </Placemark>
        <Style id='icon-22'>
            <IconStyle>
                <scale>1.1</scale>
                <Icon>
                    <href>http://www.gstatic.com/mapspro/images/stock/22-blue-dot.png</href>
                </Icon>
                <hotSpot x='16' y='31' xunits='pixels' yunits='insetPixels'>
                </hotSpot>
            </IconStyle>
        </Style>
    </Document>
</kml>

var geocoder;
var map;

function initialize() 
  var myOptions = 
    center: 
      lat: 0,
      lng: 0
    ,
    zoom: 2,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  ;
  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

  var geoXml = new geoXML3.parser(
    map: map,
    singleInfoWindow: false
  );
  geoXml.parseKmlString(kmlData);

google.maps.event.addDomListener(window, "load", initialize);

var kmlData = '<kml><Style id="icon-22"><IconStyle><scale>1.1</scale><Icon><href>http://www.gstatic.com/mapspro/images/stock/22-blue-dot.png</href></Icon><hotSpot x="16" y="31" xunits="pixels" yunits="insetPixels"></hotSpot></IconStyle></Style><Placemark><styleUrl>#icon-22</styleUrl><name>Residencial Buena Vista</name><Point><coordinates>-49.281449,-16.689937,0.0</coordinates></Point></Placemark></kml>';
html,
body,
#map_canvas 
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
<script src="https://maps.googleapis.com/maps/api/js"></script>
<script src="https://geoxml3.googlecode.com/svn/branches/polys/geoxml3.js"></script>
<div id="map_canvas" style="border: 2px solid #3872ac;"></div>

【讨论】:

如何在我的代码中从该地图下载 KML(向具有该地图的页面发出获取请求的代码) ***.com/questions/28642206/…

以上是关于我需要从使用 msa 和 msid 的谷歌地图 url 中提取经纬度数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从angularJS中的谷歌地图标记获取动态位置

从 php 中的谷歌地图获取国家名称

如何从 PHP 输入表单中获取城市的谷歌地图?

带有多个标记的谷歌地图自动中心

无法从android中的谷歌地图获取地点数据

如何从 ionic 2 中的谷歌地图获取纬度和经度?