Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用线条将标记链接在一起:谷歌地图api_Javascript_Jquery_Api_Google Maps_Markers - Fatal编程技术网

Javascript 使用线条将标记链接在一起:谷歌地图api

Javascript 使用线条将标记链接在一起:谷歌地图api,javascript,jquery,api,google-maps,markers,Javascript,Jquery,Api,Google Maps,Markers,我想编写一个功能代码,当用户单击一个标记时,它会出现,当用户单击下一个标记时,它会使用一条线将其连接到上一个标记。我曾尝试使用谷歌api文档来实现这一点,但似乎无法使该功能正常工作。有人能帮忙吗 代码如下: google.maps.event.addListener(map, "click", function(event) { var marker = new google.maps.Marker({ position: event.latLng, map: map

我想编写一个功能代码,当用户单击一个标记时,它会出现,当用户单击下一个标记时,它会使用一条线将其连接到上一个标记。我曾尝试使用谷歌api文档来实现这一点,但似乎无法使该功能正常工作。有人能帮忙吗

代码如下:

google.maps.event.addListener(map, "click", function(event) {
var marker = new google.maps.Marker({
      position: event.latLng,
      map: map
    });

    poly = new google.maps.Polyline({
    strokeColor: '#000000',
    strokeOpacity: 1.0,
    strokeWeight: 3
  });
    poly.setMap(map);

    map.addListener('click', addLatLng);
  }

  function addLatLng(event) {
  var path = poly.getPath();

  path.push(event.latLng);

  var marker = new google.maps.Marker({
  position: event.latLng,
  title: '#' + path.getLength(),
  );

最简单的方法是将多段线设置为全局,然后在
addLatLng
事件处理程序函数中执行所有操作:

// global polyline
var map;
var poly = new google.maps.Polyline({
  strokeColor: '#000000',
  strokeOpacity: 1.0,
  strokeWeight: 3
});

// add marker and point to polyline path
function addLatLng(event) {
  var path = poly.getPath();
  path.push(event.latLng);
  var marker = new google.maps.Marker({
    position: event.latLng,
    title: '#' + path.getLength(),
    map: map
  });
};
代码片段:

//全局变量
var映射;
var poly=new google.maps.Polyline({
strokeColor:“#000000”,
笔划不透明度:1.0,
冲程重量:3
});
函数初始化(){
map=新建google.maps.map(
document.getElementById(“地图画布”){
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
map.addListener('click',addLatLng);
//将多段线添加到地图中
poly.setMap(map);
}
功能添加(事件){
var path=poly.getPath();
路径推送(event.latLng);
var marker=new google.maps.marker({
位置:event.latLng,
标题:“#”+path.getLength(),
地图:地图
});
};
google.maps.event.addDomListener(窗口“加载”,初始化)
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}


我看不到您的代码中有任何添加a的尝试,您尝试了哪些您认为应该有效的方法?请提供一个演示该尝试的示例。我编辑了问题以显示我使用的代码,它不会加载映射,因为错误控制台会在参数列表后显示“Uncaught SyntaxError:missing”)以及“Uncaught ReferenceError:initialize未定义”,但我不确定如何修复此问题添加缺少的内容”)。您发布的代码远未“完成”。您永远不会设置多段线的路径属性。您不会添加调用
addLatLng
的“映射”单击侦听器,直到第一次单击映射之后(它添加在第一个
map
click侦听器中),因此第一个点不会添加到多段线。因此,我将在何处放置代码。我在一个单独的示例中使用了折线,但是当我将代码放在其中时,它根本不起作用,这就是我在示例中使用的代码,我说我开始工作了,但是当我将代码放在我用来说明infowindows的代码中时,代码根本不起作用。我的答案中的代码与您的问题中的代码不同。如果您无法将其添加到代码中,请按照我在第一条评论中的要求,提供一个演示该问题的示例。