1

我尝试在谷歌地图中设置多边形颜色..

<html>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script src="http://geoxml3.googlecode.com/svn/branches/polys/geoxml3.js"></script>
<script src="http://geoxml3.googlecode.com/svn/trunk/ProjectedOverlay.js"></script>

    <script>
        var x=new google.maps.LatLng(-34.397, 150.644);

        var a=new google.maps.LatLng(12.9667,77.5667);
        var b=new google.maps.LatLng(13.0839,80.2700);
        var c=new google.maps.LatLng(11.9310,79.7852);
        var lat_point=new google.maps.LatLng('76.96332200000001,10.991397,0 76.963318,10.991423,0 76.96339500000001,10.991436,0 76.96339999999999,10.991411,0 76.96332200000001,10.991397,0 ');
        function initialize() {

           var options = {
                center: x,
                zoom:4,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };

            var map = new google.maps.Map(document.getElementById("canvas"), options);
            var parser = new geoXML3.parser({map: map, processStyles: true});
            parser.parse("sample.kml"); 

            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
            }
            else
            {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.open("GET","sample.kml",false);
            xmlhttp.send();
            xmlDoc=xmlhttp.responseXML;

            var fff=xmlDoc.getElementsByTagName("topo")[0];

            y=fff.childNodes[0];
            //alert(y.nodeValue);
            //document.write(y.nodeValue);

            var myTrip=[a,b,c,lat_point];

            var flightPath=new google.maps.Polygon({
                path:myTrip,
                strokeColor:"#01700A",
                strokeOpacity:0.8,
                strokeWeight:2,
                fillColor:"#01700A",
                fillOpacity:0.4
            });

            flightPath.setMap(map);

        }

        $(document).ready(initialize);

    </script>

    <div id="canvas" style="width:500px; height:500px"></div>

<html>

前3个经纬度点多边形颜色设置成功。我有麻烦

lat_point=new google.maps.LatLng('76.96332200000001,10.991397,0 76.963318,10.991423,0 76.96339500000001,10.991436,0 76.96339999999999,10.991411,0 76.96332200000001,10.991397,0 ');

如何解决?

4

1 回答 1

0

Polygon 的路径需要一组 google.maps.LatLng 对象,而不是字符串。

lat_point=new google.maps.LatLng('76.96332200000001,10.991397,0 76.963318,10.991423,0 76.96339500000001,10.991436,0 76.96339999999999,10.991411,0 76.96332200000001,10.991397,0 '); 

应该:

lat_point=[new google.maps.LatLng(10.991397,76.96332200000001),
       new google.maps.LatLng(10.991423,76.963318),
       new google.maps.LatLng(10.991436,76.96339500000001),
       new google.maps.LatLng(10.991411,76.96339999999999),
       new google.maps.LatLng(10.991397,76.96332200000001)];

请注意,我假设字符串来自 KML 并颠倒了纬度和经度,一个 google.maps.LatLng 对象参数是纬度、经度,KML 是经度、纬度、高度。

于 2013-09-25T14:01:53.323 回答