Google maps api 3 Google Maps V3多段线:使其无中心点可编辑

Google maps api 3 Google Maps V3多段线:使其无中心点可编辑,google-maps-api-3,google-polyline,Google Maps Api 3,Google Polyline,我正在努力与谷歌地图Api V3多段线。使用此API可以创建用户可编辑的形状,如矩形形状所示。但是,当我对多段线执行相同操作时,线段的中心会出现问题 在矩形示例中,这样的中心点用于扩展矩形边的大小。但在我的多段线中,当拖动该点时,会将该线打断为两条新线。因此,他们每个人都有一个新的中心。因此,我现在得到的不是2分,而是5分。这是无止境的:每次我点击一个中心点并拖动它,它就会创建新的点 以下是我代码的一部分: var polyCoord = [ new google.maps.La

我正在努力与谷歌地图Api V3多段线。使用此API可以创建用户可编辑的形状,如矩形形状所示。但是,当我对多段线执行相同操作时,线段的中心会出现问题

在矩形示例中,这样的中心点用于扩展矩形边的大小。但在我的多段线中,当拖动该点时,会将该线打断为两条新线。因此,他们每个人都有一个新的中心。因此,我现在得到的不是2分,而是5分。这是无止境的:每次我点击一个中心点并拖动它,它就会创建新的点

以下是我代码的一部分:

var polyCoord = [
        new google.maps.LatLng(41.86, 8.73),
        new google.maps.LatLng(41.88, 8.75)
    ];

    // Polyline
    var pol = new google.maps.Polyline({
        path: polyCoord,
        editable: true
    });
    pol.setMap(map);

如何仅使用2个点生成可编辑多段线?感谢使用此问题中的概念:

> P>不要使用可编辑的折线(中间有编辑句柄而不需要)。

  • 将标记绑定到多段线的两个顶点中的每一个,使其可拖动

  • 代码片段:

    var映射;
    函数初始化(){
    map=新建google.maps.map(
    document.getElementById(“地图画布”){
    中心:新google.maps.LatLng(37.4419,-122.1419),
    缩放:13,
    mapTypeId:google.maps.mapTypeId.ROADMAP
    });
    变量polyCoord=[
    新google.maps.LatLng(41.86,8.73),
    新google.maps.LatLng(41.88,8.75)
    ];
    var bounds=new google.maps.LatLngBounds();
    扩展(polyCoord[0]);
    扩展(polyCoord[1]);
    映射边界(bounds);
    //多段线
    var pol=新的google.maps.Polyline({
    路径:polyCoord
    });
    pol.binder=新的MVCArrayBinder(pol.getPath());
    var marker0=新的google.maps.Marker({
    位置:event.latLng,
    标题:“#0”,
    地图:地图,
    图标:{
    url:“https://maps.gstatic.com/intl/en_us/mapfiles/markers2/measle.png",
    大小:新谷歌地图大小(7,7),
    主播:新google.maps.Point(3.5,3.5)
    },
    德拉格布尔:是的
    });
    marker0.bindTo('position',pol.binder,(0.toString());
    var marker1=新的google.maps.Marker({
    位置:event.latLng,
    标题:“#1”,
    地图:地图,
    图标:{
    url:“https://maps.gstatic.com/intl/en_us/mapfiles/markers2/measle.png",
    大小:新谷歌地图大小(7,7),
    主播:新google.maps.Point(3.5,3.5)
    },
    德拉格布尔:是的
    });
    marker1.bindTo('position',pol.binder,(1.toString());
    pol.setMap(map);
    }
    google.maps.event.addDomListener(窗口“加载”,初始化);
    /*
    *使用bindTo允许动态拖动标记以刷新多边形。
    */
    功能MVCArrayBinder(mvcArray){
    this.array=mvcArray;
    }
    MVCArrayBinder.prototype=新的google.maps.MVCObject();
    MVCArrayBinder.prototype.get=函数(键){
    如果(!isNaN(parseInt(key))){
    返回这个.array.getAt(parseInt(key));
    }否则{
    此.array_u2;.get(键);
    }
    }
    MVCArrayBinder.prototype.set=函数(键,val){
    如果(!isNaN(parseInt(key))){
    this.array_u.setAt(parseInt(key),val);
    }否则{
    此.array_uu.set(key,val);
    }
    }
    html,
    身体,
    #地图画布{
    身高:100%;
    宽度:100%;
    边际:0px;
    填充:0px
    }

    使用此问题中的概念:

    > P>不要使用可编辑的折线(中间有编辑句柄而不需要)。

  • 将标记绑定到多段线的两个顶点中的每一个,使其可拖动

  • 代码片段:

    var映射;
    函数初始化(){
    map=新建google.maps.map(
    document.getElementById(“地图画布”){
    中心:新google.maps.LatLng(37.4419,-122.1419),
    缩放:13,
    mapTypeId:google.maps.mapTypeId.ROADMAP
    });
    变量polyCoord=[
    新google.maps.LatLng(41.86,8.73),
    新google.maps.LatLng(41.88,8.75)
    ];
    var bounds=new google.maps.LatLngBounds();
    扩展(polyCoord[0]);
    扩展(polyCoord[1]);
    映射边界(bounds);
    //多段线
    var pol=新的google.maps.Polyline({
    路径:polyCoord
    });
    pol.binder=新的MVCArrayBinder(pol.getPath());
    var marker0=新的google.maps.Marker({
    位置:event.latLng,
    标题:“#0”,
    地图:地图,
    图标:{
    url:“https://maps.gstatic.com/intl/en_us/mapfiles/markers2/measle.png",
    大小:新谷歌地图大小(7,7),
    主播:新google.maps.Point(3.5,3.5)
    },
    德拉格布尔:是的
    });
    marker0.bindTo('position',pol.binder,(0.toString());
    var marker1=新的google.maps.Marker({
    位置:event.latLng,
    标题:“#1”,
    地图:地图,
    图标:{
    url:“https://maps.gstatic.com/intl/en_us/mapfiles/markers2/measle.png",
    大小:新谷歌地图大小(7,7),
    主播:新google.maps.Point(3.5,3.5)
    },
    德拉格布尔:是的
    });
    marker1.bindTo('position',pol.binder,(1.toString());
    pol.setMap(map);
    }
    google.maps.event.addDomListener(窗口“加载”,初始化);
    /*
    *使用bindTo允许动态拖动标记以刷新多边形。
    */
    功能MVCArrayBinder(mvcArray){
    this.array=mvcArray;
    }
    MVCArrayBinder.prototype=新的google.maps.MVCObject();
    MVCArrayBinder.prototype.get=函数(键){
    如果(!isNaN(parseInt(key))){
    返回这个.array.getAt(parseInt(key));
    }否则{
    此.array_u2;.get(键);
    }
    }
    MVCArrayBinder.prototype.set=函数(键,val){
    如果(!isNaN(parseInt(key))){
    this.array_u.setAt(parseInt(key),val);
    }否则{
    此.array_uu.set(key,val);
    }
    }
    html,
    身体,
    #地图画布{
    身高:100%;
    宽度:100%;
    边际:0px;
    填充:0px
    }

    使用此问题中的概念:

    > P>不要使用可编辑的折线(中间有编辑句柄而不需要)。

  • 将标记绑定到多段线的两个顶点中的每一个,使其可拖动

  • 代码片段:

    var映射;
    函数初始化(){
    map=新建google.maps.map(
    document.getElementById(“地图画布”){
    中心:n