如何在gmap上画一条线和一个框?

时间:2019-07-16 12:44:03

标签: javascript jquery google-maps

我见过this tool,可让您在gmaps上画一条线,并为您生成js代码

所以JS是:

var myCoordinates = [
  new google.maps.LatLng(48.955410,10.034749),
  new google.maps.LatLng(59.648652,29.898030)
];
var polyOptions = {
  path: myCoordinates,
  strokeColor: "#FF0000",
  strokeOpacity: 1,
  strokeWeight: 3
}
var it = new google.maps.Polyline(polyOptions);
it.setMap(map);

我想做的就是从我收到的图钉开始行,而不是我按照该工具单击时设置的图钉开始行,然后在该行的末尾绘制一个信息框(所以不在该位置它从别针开始)。

我的目标是从起点开始画一条线,并有一个信息框,如下图所示,请参见地图上的线

enter image description here

因此,我可以在这里传递坐标:

  new google.maps.LatLng(48.955410,10.034749),
  new google.maps.LatLng(59.648652,29.898030)

但是我将如何定位行尾并将文本放置在那?

使用this answer,我可以定义起点和终点,但是如何在终点处绘制框?

1 个答案:

答案 0 :(得分:0)

我认为您可以在行的末端使用标记,然后在末端附加例如infoWindow,最后隐藏该标记。

function initMap() {

  var coordinates = {
    lat: 40.785845,
    lng: -74.020496
  };

  var coordinates2 = {
    lat: 40.805845,
    lng: -74.130496
  };

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 10,
    center: coordinates,
    scrollwheel: false
  });

  var marker = new google.maps.Marker({
    position: coordinates,
    map: map
  });

    var infoMarker = new google.maps.Marker({
    position: coordinates2,
    map: map
  });

  var infowWindow = new google.maps.InfoWindow();

    var line = new google.maps.Polyline({
    path: [
      marker.position,
      infoMarker.position
    ],
    strokeColor: "#FF0000",
    strokeOpacity: 1,
    strokeWeight: 3
  });

  line.setMap(map);

  infowWindow.setContent("<b>Hello world!</b>");
  infowWindow.open(map, infoMarker);
  infoMarker.setVisible(false);
}

google.maps.event.addDomListener(window, "load", initMap);

检查它是否可以在此jsfiddle

上运行