包含要在谷歌地图上显示的纬度和经度的数组列表

时间:2014-07-26 07:24:49

标签: google-maps-api-3

我得到一个包含由逗号分隔的多边形的纬度和经度的字符串(顶点)。我将其转换为数组并尝试将其分配给谷歌地图以显示多边形。但是当我硬编码下面注释数组中的值时,我在地图上得到多边形但是如果我尝试分配我的数组(polygoncoordinates)它没有显示。有人可以告诉我,我在做什么错误吗?

function initialize() {
            var mapOptions = {
                center: new google.maps.LatLng(23.9661, 76.6845),
                zoom: 7
            };
            var map = new google.maps.Map(document.getElementById('map-canvas'),            mapOptions);
            var val = vertices.split(',');            
            var polygonCoordinates = [];
            for (var i = 1; i<val.length; i++) {
                if (val[i] == "") {
                }
                else {                    
                    var temp;
                    temp = val[i].split(':');
                    var kk = temp[1].split(';');
                    var googleContent = 'new google.maps.LatLng(' + kk[0] + ', ' + kk[1] ')';   
                    polygonCoordinates.push(googleContent);
                }
            }

    //        var polygonCoordinates = [new google.maps.LatLng(23.9661, 76.6845),
    //new google.maps.LatLng(23.1605,81.7822),
    //new google.maps.LatLng(26.7848, 82.4853)
    //];

            var bermudaTriangle = new google.maps.Polygon({
                paths: polygonCoordinates,
                strokeColor: 'black',
                strokeOpacity: 0.8,
                strokeWeight: 2,
                fillColor: 'black',
                fillOpacity: 0.35
            });
            bermudaTriangle.setMap(map);
        }
        google.maps.event.addDomListener(window, 'load', initialize);

提前致谢

1 个答案:

答案 0 :(得分:1)

使用

var googleContent = 'new google.maps.LatLng(' + kk[0] + ', ' + kk[1] ')';
polygonCoordinates.push(googleContent);

您正在构建一个字符串数组。 polygonCoordinates应该是LatLng的数组。你必须使用:

var googleContent = new google.maps.LatLng(kk[0], kk[1]);   
polygonCoordinates.push(googleContent);