Javascript 当区域重复时,如何从开放层v4.2 API正确获取坐标

Javascript 当区域重复时,如何从开放层v4.2 API正确获取坐标,javascript,openlayers,openlayers-3,Javascript,Openlayers,Openlayers 3,当国家重复时,如何从地图中正确获取坐标,即当我们缩小到最大值时,国家重复并单击同一个国家会给出无效坐标。我们不能通过显示单个世界地图来限制用户(这可以通过设置WrapX属性来实现)。还有其他解决方案吗,请帮忙 添加显示坐标的示例代码。请将鼠标悬停在重复的同一国家/地区上,查看差异 “严格使用”; var vectorSource=新的ol.source.Vector({ wrapX:错误 }); /*图层样式*/ var stylesIcon=新的ol.style.style({ 图片:新ol

当国家重复时,如何从地图中正确获取坐标,即当我们缩小到最大值时,国家重复并单击同一个国家会给出无效坐标。我们不能通过显示单个世界地图来限制用户(这可以通过设置WrapX属性来实现)。还有其他解决方案吗,请帮忙

添加显示坐标的示例代码。请将鼠标悬停在重复的同一国家/地区上,查看差异

“严格使用”;
var vectorSource=新的ol.source.Vector({
wrapX:错误
});
/*图层样式*/
var stylesIcon=新的ol.style.style({
图片:新ol.style.Icon({
主播:[0.5,46],
主播:“分数”,
anchorYUnits:'像素',
不透明度:0.75,
src:'icon.png'
})
})
var stylesIcon2=新的ol.style.style({
填充:新的ol.style.fill({
颜色:“rgba(0,0255,0.3)”
}),
笔划:新的ol风格笔划({
颜色:'#000100',
宽度:2
}),
图片:新ol.style.Circle({
半径:7,
填充:新的ol.style.fill({
颜色:'#000000'
})
})
})
/*层*/
var vectorLayer=新ol.layer.Vector({
来源:矢量源,
风格:stylesIcon
});
/*地图*/
var map=新ol.map({
图层:[新建ol.layer.Tile({
source:newol.source.OSM({})
}),矢量层],
目标:“地图”,
视图:新ol.view({
中心:Lonlat([0,0])的其他项目,
缩放:1
})
});
var元素=document.getElementById('popup');
element.onmouseout=函数(事件){
element.style.visibility='hidden'
};
var popup=新ol.Overlay({
元素:元素,
定位:'底部中心',
stopEvent:false
});
map.addOverlay(弹出窗口);
/*事件*/
map.on(“pointermove”,函数(事件){
var lonlat=ol.proj.transform(event.coordinate,'EPSG:3857',
‘EPSG:4326’;
var logitude=lonlat[0];
var latitude=lonlat[1];
document.getElementById('mousePointer')。innerText='longitude:'+
逻辑度+纬度:'+latitude;
});
map.on(“单点击”,函数(事件){
var lonlat=ol.proj.transform(event.coordinate,'EPSG:3857',
‘EPSG:4326’;
var logitude=lonlat[0];
var latitude=lonlat[1];
document.getElementById('mouseClick')。innerText='longitude:'+
逻辑度+纬度:'+latitude;
});
映射('单击')功能(事件){
var feature=map.forEachFeatureAtPixel(event.pixel,函数(
特征(图层){
返回特性;
})
如果(功能){
var geometry=feature.getGeometry();
var coord=geometry.getCoordinates();
弹出设置位置(坐标);
var元素=document.getElementById('popup');
element.innerText=feature.get('name')
element.style.visibility='visible'
}
})
函数createMarkers(){
var lat=parseFloat(document.getElementById('latitudeInp').value);
var lng=parseFloat(document.getElementById('logitudeInp').value);
vectorSource.clear();
vectorSource.addFeature(新的ol.Feature({
几何:新的ol.geom.Point(ol.proj.transform([lng,lat],
"EPSG:4326","EPSG:3857"),,
名称:“已添加标记”
}));
}
a.skipling{
位置:绝对位置;
剪辑:rect(1px,1px,1px,1px);
填充:0;
边界:0;
高度:1px;
宽度:1px;
溢出:隐藏;
}
a、 斯基普林克:聚焦{
剪辑:自动;
高度:自动;
宽度:自动;
背景色:#fff;
填充:0.3em;
}
#地图:焦点{
轮廓:#4A74A8实心0.15em;
}
.mapDemo{
边框:1px纯黑;
边缘顶部:5px;
}

无障碍地图
演示动作

当前鼠标指针:

点击:

添加标记: 经度: 纬度 : 名称 : 提交 :


在磁贴源上设置wrapX:false

 new ol.layer.Tile({
   source: new ol.source.OSM({
    wrapX: false
  })
})

在磁贴源上设置wrapX:false

 new ol.layer.Tile({
   source: new ol.source.OSM({
    wrapX: false
  })
})

地图的两端,我提到了这一点。地图的两端,我提到了这一点