Google地图未显示蓝色位置标记(在Sitecore网站中使用时)

时间:2011-11-17 14:53:14

标签: xml ajax google-maps xmlhttprequest sitecore

我的Google地图配置为显示蓝色位置标记。

我的地图使用以下.kml文件(仅描述通过Google Maps API 显示蓝色位置标记的地方的xml数据),我使用普通的旧XMLHttpRequest对象加​​载。

我的问题是,当我从外部源(例如“http://xyz.com/kumedplaces.kml”)加载.kml文件时,它可以工作,但是当我存储它并尝试从我的sitecore网站运行的本地服务器,Google地图对象不会在地图上加载/显示蓝色位置标记。

以下是我在.kml文件中加载地址后在.js文件中的操作:

 <div id="map" style="width: 400px; height: 300px"></div>

    var kmlUrl = "http://xyz.com/kumedplaces.kml";  works
    var kmlUrl = "/js/heart/kumedplaces.kml";   doesn't work

    var geoXml = new GGeoXml(kmlUrl);
    map.addOverlay(geoXml);

顺便说一下,我在本地仔细检查以确保我的本地.kml文件正确加载

我的.kml文件示例:

 <?xml version="1.0" encoding="utf-8" ?> 
    <kml xmlns="http://earth.google.com/kml/2.1">
      <Document>
        <name>University of Kansas Hospital Locations</name>
        <description>The various buildings around the city that comprise the University of Kansas Hospital</description>

    <Style id="randomColorIcon">
      <IconStyle>
        <color>ff00ff00</color>
        <colorMode>random</colorMode>
        <scale>1.1</scale>
        <Icon>
          <href>http://maps.google.com/mapfiles/kml/pal3/icon21.png</href>
        </Icon>
      </IconStyle>
    </Style>

    <Placemark id="kumed">
      <name>The University of Kansas Hospital</name>
      <description>
        Part of the Kansas University Medical Center complex.
        3901 Rainbow Blvd, Kansas City, KS 66160
      </description>
      <address>3901 Rainbow Blvd, Kansas City, KS 66160</address>
      <phonenumber>xxxxxxx</phonenumber>
      <ExtendedData></ExtendedData>
      <!--<styleUrl>#randomColorIcon</styleUrl>-->
      <Point>
        <coordinates>-94.608800,39.0558241</coordinates>
      </Point>
    </Placemark>
  </Document>   
</kml>

3 个答案:

答案 0 :(得分:0)

看起来KML文件无法在本地保留或至少被引用。 See this other question。尝试将HTTP域附加到文件路径的开头而不是绝对路径? (例如http://yourdomain.com/js/heart/kumedplaces.kml

答案 1 :(得分:0)

KML文件需要公开访问(因为它们需要由Google服务器读取),据我所知,您无法在本地引用KML文件(因为Google不知道在哪里查找它们)。

答案 2 :(得分:0)

您需要将正确的MIME类型添加到您的网络服务器以提供kml和kmz文件。

kml - application/vnd.google-earth.kml+xml

kmz - application/vnd.google-earth.kmz

假设您正在使用IIS7,请在IIS7管理器中的Mime类型下添加这些。

相关问题