【问题标题】:Error polyline google maps错误折线谷歌地图
【发布时间】:2015-02-18 19:03:55
【问题描述】:
$.getJSON('/polyline/', function(data) { 
        $.each( data.markers, function(i, line) {
              var infowindow = new google.maps.InfoWindow({
                  content: line.title,
              });

                var line_lat_lon = new google.maps.LatLng(line.latitude, line.longitude);
                var line = new google.maps.Polyline({
                    path: line_lat_lon,
                    strokeColor: "#FF0000",
                    strokeOpacity: 1.0,
                    strokeWeight: 2,
                    map: map_canvas,
            });

            google.maps.event.addListener(line, 'click', function() {
                infowindow.open(map_canvas,line);
            });             
        });
      });

嗨,我需要在我的地图上画一条线,所以我使用了谷歌地图功能 Polyline。 我收到一个错误,因为 google.maps.Polyline 需要一组 LatLng 来创建线。 有人可以帮我把 line_lat_lon 变成一个数组来解决这个问题吗? 谢谢。

示例 JSON(来自评论):

{"markers": [{"latitude": "-27.48699568", "longitude": "-48.732537\r"},
{"latitude": "-27.48777704", "longitude": "-48.73220148\r"}, 
{"latitude": "-27.48987386", "longitude": "-48.73255083\r"}, 
{"latitude": "-27.49196204", "longitude": "-48.73290095\r"}, 
{"latitude": "-27.49375971", "longitude": "-48.73111728\r"}, 
{"latitude": "-27.49701558", "longitude" ... (cutoff)

【问题讨论】:

  • 你的 JSON 是什么样的?请提供一个 Minimal, Complete, Tested and Readable example 来证明问题(需要您的 JSON 来执行此操作)。
  • {"markers": [{"latitude": "-27.48699568", "longitude": "-48.732537\r"}, {"latitude": "-27.48777704", "longitude": “-48.73220148\r”},{“纬度”:“-27.48987386”,“经度”:“-48.73255083\r”},{“纬度”:“-27.49196204”,“经度”:“-48.73290095\r” }, {"latitude": "-27.49375971", "longitude": "-48.73111728\r"}, {"latitude": "-27.49701558", "longitude" 这是我的 JSON
  • 请不要在 cmets 中发布代码,编辑您的问题以包含任何请求的信息。我已编辑您的问题以包含您提供的(部分)JSON,请编辑您的问题以包含完整的示例。

标签: javascript arrays google-maps


【解决方案1】:

您需要向折线传递一个 google.maps.LatLng 对象数组:

$.getJSON('/polyline/', function(data) { 
    var line_lat_lon = [];
    $.each( data.markers, function(i, line) {
          var infowindow = new google.maps.InfoWindow({
              content: line.title,
          });

          line_lat_lon.push(new google.maps.LatLng(line.latitude, line.longitude));


          google.maps.event.addListener(line, 'click', function() {
              infowindow.open(map_canvas,line);
          });             
    });
    var line = new google.maps.Polyline({
                path: line_lat_lon,
                strokeColor: "#FF0000",
                strokeOpacity: 1.0,
                strokeWeight: 2,
                map: map_canvas,
        });
});

【讨论】:

  • 如果这对您有用并回答了您的问题,请accept it
猜你喜欢
  • 2014-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多