如何在openlayers OSM中获取点的最近位置
最近我开始使用openlayers和openstreetmap。 我想做的是画一条线,然后从那里得到最近的起点和终点的位置,经度和纬度。 我可以得到经度和纬度的点贝娄是它的脚本如何在openlayers OSM中获取点的最近位置,openlayers,openstreetmap,Openlayers,Openstreetmap,最近我开始使用openlayers和openstreetmap。 我想做的是画一条线,然后从那里得到最近的起点和终点的位置,经度和纬度。 我可以得到经度和纬度的点贝娄是它的脚本 <script type="text/javascript"> var map, layer; function init(){ var map = new OpenLayers.Map("map"); layer = new OpenL
<script type="text/javascript">
var map, layer;
function init(){
var
map = new OpenLayers.Map("map");
layer = new OpenLayers.Layer.OSM( "Simple OSM Map");
// allow testing of specific renderers via "?renderer=Canvas", etc
var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
renderer = (renderer) ? [renderer]:OpenLayers.Layer.Vector.prototype.renderers;
var vectors = new OpenLayers.Layer.Vector("Vector Layer", {
renderers: renderer
});
vectors.events.on({
'featureselected': function(feature) {
$('counter').innerHTML = this.selectedFeatures.length;
},
'featureunselected': function(feature) {
$('counter').innerHTML = this.selectedFeatures.length;
}
});
map.addLayers([layer, vectors]);
line = new OpenLayers.Control.DrawFeature(
vectors, OpenLayers.Handler.Path
);
line.events.register('featureadded', line, handleMapClick);
map.addControl(line);
map.setCenter(
new OpenLayers.LonLat(-71.147, 42.472).transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
), 15
);
}
function handleMapClick(evt)
{
// create a WKT reader/parser/writer
var wkt = new OpenLayers.Format.WKT();
// write out the feature's geometry in WKT format
var out = wkt.write(evt.feature);
alert(out);
}
var映射,层;
函数init(){
变量
map=新的OpenLayers.map(“map”);
layer=新的OpenLayers.layer.OSM(“简单OSM映射”);
//允许通过“?渲染器=画布”等测试特定渲染器
var renderer=OpenLayers.Util.getParameters(window.location.href).renderer;
renderer=(renderer)?[renderer]:OpenLayers.Layer.Vector.prototype.renderers;
var vectors=new OpenLayers.Layer.Vector(“向量层”{
渲染器:渲染器
});
向量,事件({
“功能选定”:功能(功能){
$('counter').innerHTML=this.selectedFeatures.length;
},
“功能未选择”:功能(功能){
$('counter').innerHTML=this.selectedFeatures.length;
}
});
addLayers([层,向量]);
line=新建OpenLayers.Control.DrawFeature(
向量,OpenLayers.Handler.Path
);
line.events.register('featureadded',line,handleMapClick);
map.addControl(行);
地图设置中心(
新OpenLayers.LonLat(-71.147,42.472).转换(
新OpenLayers.投影(“EPSG:4326”),
map.getProjectionObject()文件
), 15
);
}
函数handleMapClick(evt)
{
//创建WKT读取器/解析器/编写器
var wkt=new OpenLayers.Format.wkt();
//以WKT格式写出要素的几何图形
var out=wkt.write(evt.feature);
警惕(出去);
}
但是我无法获取最近的位置。您可以使用获取行的BBox中的所有位置(您可以缓冲该位置)。
如果直线太长,则可以缓冲(使用OL)直线并使用“按多边形”选择
现在你有一个(希望)小集合来获得最近的