谷歌地图问题 -> google.maps.KmlLayer

3

我有一个控制器(地址/Home/Test,如下所示),它肯定会响应以下get请求:

<?xml version="1.0" encoding="utf-8"?><kml xmlns="http://www.opengis.net/kml/2.2"><Placemark><name>Simple placemark</name><description>Attached to the ground. Intelligently places itself
           at the height of the underlying terrain.</description><Point><coordinates>-122.0822035425683,37.42228990140251,0</coordinates></Point></Placemark></kml>

这就像是一个反应数据的源,通过get请求返回数据(application/vnd.google-earth.kml+xml)。

我正在使用这个javascript:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&region=GB"></script>
    <script type="text/javascript" src="/Scripts/jquery-1.4.1.js"></script>


    <script type="text/javascript">

        $(document).ready(function() {
        var latlng = new google.maps.LatLng(37.42228990140251, -122.0822035425683);
            var options = {
                zoom: 17,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.HYBRID
            };
            var map = new google.maps.Map(document.getElementById('map_canvas'), options);


            //alert(georssLayer);
            var georssLayer = new google.maps.KmlLayer('/Home/Test');

            georssLayer.setMap(map);
        });
    </script> 

地图被显示出来了,但是在-122.0822035425683,37.42228990140251没有任何内容。
有什么想法吗?
也许我误解了KmlLayer的功能?我认为它执行了一个get请求,然后在地图上叠加了...
Christian

你不能使用 /home/test。 请参考几天前的这个答案:http://stackoverflow.com/questions/3435566/google-maps-kml-files/ - Marcelo
1个回答

7
http://code.google.com/apis/maps/documentation/javascript/overlays.html上可以看到这样的提示:'Google Maps API支持KML和GeoRSS数据格式来显示地理信息。使用KmlLayer对象在地图上显示这些数据格式,其构造函数需要一个公开可访问的KML或GeoRSS文件的URL。' 我觉得你的请求是本地的,请将它移到Google可以看到的服务器上。

谢谢。非常奇怪。为什么它一开始就必须是公共的?Virtual Earth没有这个限制... - cs0815
在我在其他答案中提供的链接帖子中,我解释了为什么这样做,看来你忽视了。 - Marcelo

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