【问题标题】:Google Maps not showing blue location markers (when used in Sitecore site)Google 地图未显示蓝色位置标记(在 Sitecore 站点中使用时)
【发布时间】:2011-11-24 17:54:47
【问题描述】:

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

我的地图使用以下 .kml 文件(只是描述地点的 xml 数据,通过 Google Maps API 显示蓝色位置标记),我使用普通的旧 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>

【问题讨论】:

    标签: xml ajax google-maps xmlhttprequest sitecore


    【解决方案1】:

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

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

    对于kmz - application/vnd.google-earth.kmz

    假设您使用的是 IIS7,请在 IIS7 管理器的 Mime Types 下添加这些内容。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        KML 文件需要可公开访问(因为它们需要由 Google 服务器读取),据我所知,您不能对 KML 文件进行本地引用(因为 Google 不知道在哪里可以找到它们)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-05
          • 1970-01-01
          • 1970-01-01
          • 2016-01-20
          相关资源
          最近更新 更多