首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geoxml3 CreatePolygon函数

Geoxml3 CreatePolygon函数
EN

Stack Overflow用户
提问于 2015-06-07 22:49:05
回答 1查看 1.1K关注 0票数 0

我想知道如何在解析器选项中使用createPolygon函数。

这是我的索引文件,但是它给了我这个错误:无法读取未定义的属性“界”。

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Geoxml3</title>
<style>
    html{height:100%;}
    body{height:100%;margin:0px;}
    #map_canvas{height: 90%;width: 90%;}
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://geoxml3.googlecode.com/svn/branches/polys/geoxml3.js"></script>

</head>
<body>
<div id="map_canvas"></div>

<script type="text/javascript">
var geoXml="", map="";
var infowindow = new google.maps.InfoWindow({});

function initialize() {
    var myOptions = {
        center: new google.maps.LatLng(39.397, -100.644),
        zoom: 4,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    geoXml = new geoXML3.parser({
        map: map,
        zoom: true,
        createMarker: addMyMarker,
        createPolygon: addMyPolygon,
        singleInfoWindow: true,
        suppressInfoWindows: true
    });

    geoXml.parse('testPolygon.xml');

    function addMyMarker(placemark) {
        var marker = geoXml.createMarker(placemark);
            //marker.setAnimation(google.maps.Animation.BOUNCE);
            google.maps.event.addListener(marker, 'click', function() {
                infowindow.setContent(placemark.description);   
                infowindow.setPosition(marker.getPosition());
                infowindow.open(map,marker);
            });
        };

        function addMyPolygon(placemark) {
            var polygon = geoXml.createPolygon(placemark);
            google.maps.event.addListener(polygon, 'click', function() {
                infowindow.setContent(placemark.description);   
                var lat = event.latLng.lat();
                var lng = event.latLng.lng();
                var myLatlng = new google.maps.LatLng(lat,lng);
                infowindow.setPosition(myLatlng);
                infowindow.open(map,polygon);
            });
        };

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

</script>
</body>
</html>

我想知道我使用' createPolygon :addMyPolygon‘函数的方式是否正确,或者问题在哪里,我的意思是如何使用createPolygon函数为每个多边形设置一个单击侦听器。我是用带有标记的KML的createMarker函数完成的,但是在上面的文件中,createPolygon不解析我的KML文件。

我的KML/XML文件是:test/testPolygon.xml

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-08 04:29:07

createPolygon函数需要将生成的多边形返回给GeoXml3,以便它能够管理它。

代码语言:javascript
复制
function addMyPolygon(placemark) {
    var polygon = geoXml.createPolygon(placemark);
    google.maps.event.addListener(polygon, 'click', function(event) {
        var myLatlng = event.latLng;
        infowindow.setContent("<b>"+placemark.name+"</b><br>"+placemark.description+"<br>"+event.latLng.toUrlValue(6));   
        infowindow.setPosition(myLatlng);
        infowindow.open(map);
    });
    return polygon;
};

此外,如果要在多边形“单击”侦听器中使用event,则需要定义它。

工作实例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30699256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档