0

我正在使用谷歌地图,我正在尝试在地图上创建一个多边形,但由于某种原因,谷歌只是给了我没有多边形的地图

代码:

    <script type="text/javascript">
  var map;
  var infoWindow;
  var sandCoodrs;

function initialize() {


  var myLatLng = new google.maps.LatLng(-26, 28);
  var mapOptions = {
    zoom: 10,
    center: myLatLng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  map = new google.maps.Map(document.getElementById("map_canvas"),
      mapOptions);

  var sandtonCoords = [];

//出于某种原因,在这一点之后firebug没有进入代码并且sandtonCoords保持为空,因此没有多边形

  jQuery.get('http://localhost/magnetic/Main.txt', function(data) 
    {
        var StringData = data;
        StringData.trim();
        var MainArray = data.split(",");
        var length = MainArray.length;
        for(k=0;k<length;k++)
        {
            var StringCoords = MainArray[k];
            var LatLongArray = StringCoords.split(" ");
            var Lat = parseFloat(LatLongArray[0]);
            Lat.trim();
            var Long = parseFloat(LatLongArray[1]);
            Long.trim();
            sandtonCoords.push(new google.maps.LatLng(Lat,Long));
        }
    });

andton = new google.maps.Polygon({
    paths: sandtonCoords,
    strokeColor: "#FF0000",
    strokeOpacity: 0.8,
    strokeWeight: 3,
    fillColor: "#FF0000",
    fillOpacity: 0.35
  });

  sandton.setMap(map);

  // Add a listener for the click event
  google.maps.event.addListener(sandton, 'click', showArrays);

  infowindow = new google.maps.InfoWindow();
}`
4

1 回答 1

0

LatLongArray 是一个字符串数组。纬度和经度是数值,类型转换不是自动的。所以:

var Lat = parseFloat(LatLongArray[0]);
var Long = parseFloat(LatLongArray[1]);

顺便说一句,确保 Main.txt 中的对是 [lat lon] 而不是 [lon lat]。

于 2012-09-02T16:17:33.827 回答