最近、私は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);
}
しかし、最寄りの場所を取得できません。