最近我盯着openlayers& OpenStreetMap的。 我想要做的是绘制一条线和一条线。然后得到起点的最近位置&从那里经度和纬度的终点。 我能够得到它的经度和纬度。它的脚本。
<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);
}
但我无法到达最近的位置。
答案 0 :(得分:1)
您可以使用Overpass_API获取该行的BBox中的所有位置(您可以缓冲该行)。 如果您的行太长,您可以缓冲(使用OL)该行并使用“By polygon” - 选择 现在你有一个(希望)小集来得到最近的。