Google maps api 3 Google Maps V3多段线:使其无中心点可编辑
我正在努力与谷歌地图Api V3多段线。使用此API可以创建用户可编辑的形状,如矩形形状所示。但是,当我对多段线执行相同操作时,线段的中心会出现问题 在矩形示例中,这样的中心点用于扩展矩形边的大小。但在我的多段线中,当拖动该点时,会将该线打断为两条新线。因此,他们每个人都有一个新的中心。因此,我现在得到的不是2分,而是5分。这是无止境的:每次我点击一个中心点并拖动它,它就会创建新的点 以下是我代码的一部分: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
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个点生成可编辑多段线?感谢使用此问题中的概念:
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
}
使用此问题中的概念:
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
}
使用此问题中的概念:
var映射;
函数初始化(){
map=新建google.maps.map(
document.getElementById(“地图画布”){
中心:n