Back out attempt to commit partial support for POIs as this is not at
all ready for prime time yet.
This commit is contained in:
parent
6a7ae38d80
commit
a31e61169c
2 changed files with 0 additions and 104 deletions
|
@ -115,65 +115,11 @@ by the OpenStreetMap project and it's contributors.
|
|||
|
||||
map.events.register("moveend", map, updateLocation);
|
||||
map.events.register("changelayer", map, updateLocation);
|
||||
map.events.register("click", map, mapClick);
|
||||
updateLocation();
|
||||
|
||||
handleResize();
|
||||
}
|
||||
|
||||
// Map click results in feature lookup
|
||||
function mapClick(e) {
|
||||
var pos = lonLatToNonSphericalMercator
|
||||
(mercatorToLonLat
|
||||
(map.getLonLatFromViewPortPx
|
||||
( map.events.getMousePosition(e))));
|
||||
|
||||
// put in the freemap url for the moment. this will be replaced
|
||||
// by a ruby equivalent.
|
||||
/*
|
||||
url= 'http://www.free-map.org.uk/freemap/common/osmlookup.php?'+
|
||||
'action=get&x='+pos.lon+'&y='+pos.lat;
|
||||
|
||||
OpenLayers.loadURL(url,/null, null,osmLookupCallback);
|
||||
*/
|
||||
}
|
||||
|
||||
// the feature lookup finds the nearest POI node, or, if no node could
|
||||
// be found, the nearest way
|
||||
/*
|
||||
function osmLookupCallback (xmlHTTP) {
|
||||
var nodes = xmlHTTP.responseXML.getElementsByTagName('node');
|
||||
var ways = xmlHTTP.responseXML.getElementsByTagName('way');
|
||||
var features = (ways.length==1) ? ways:nodes;
|
||||
|
||||
if(features.length==1) {
|
||||
var osm_id = features[0].getElementsByTagName('osm_id')[0].
|
||||
firstChild.nodeValue;
|
||||
var name =
|
||||
(xmlHTTP.responseXML.getElementsByTagName('name').length>0) ?
|
||||
xmlHTTP.responseXML.getElementsByTagName('name')[0].
|
||||
firstChild.nodeValue: "";
|
||||
|
||||
|
||||
if(this.osm_type=='way' && ways.length==1) {
|
||||
// use openlayers vector layer to highlight way for editing?
|
||||
}
|
||||
|
||||
var description="";
|
||||
var wikipedia="";
|
||||
var ad=false;
|
||||
|
||||
if(xmlHTTP.responseXML.getElementsByTagName('description').length){
|
||||
osmdesc=
|
||||
xmlHTTP.responseXML.getElementsByTagName('description')[0].
|
||||
firstChild.nodeValue;
|
||||
|
||||
description += "<p>"+osmdesc+"</p>";
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
function getPosition() {
|
||||
return mercatorToLonLat(map.getCenter());
|
||||
}
|
||||
|
|
|
@ -146,56 +146,6 @@ function lonLatToMercator(ll) {
|
|||
return new OpenLayers.LonLat(lon, lat);
|
||||
}
|
||||
|
||||
// for interacting with the PostGIS database which uses non spherical
|
||||
// Mercator. Taken from Freemap which in turn was taken from a standard
|
||||
// algorithm off the net.
|
||||
|
||||
function lonLatToNonSphericalMercator(ll) {
|
||||
var custLat = ll.lat * (Math.PI/180);
|
||||
var a = 6378137;
|
||||
var b = 6356752.3142;
|
||||
var f = (a-b)/a;
|
||||
var e = Math.sqrt(2*f-Math.pow(f,2));
|
||||
custLat=a*Math.log(Math.tan(Math.PI/4+custLat/2)*
|
||||
Math.pow(( (1-e*Math.sin(custLat)) / (1+e*Math.sin(custLat))),e/2));
|
||||
custLon = ll.lon * (Math.PI/180) * 6378137;
|
||||
return new OpenLayers.LonLat (custLon,custLat);
|
||||
}
|
||||
|
||||
function nonSphericalMercatorToLonLat(merc) {
|
||||
var lon_deg, lat_deg;
|
||||
var a = 6378137.0;
|
||||
var b = 6356752.3142;
|
||||
var k0 = 1.0;
|
||||
var t = 1.0 - b/a;
|
||||
var es = 2*t - t*t;
|
||||
var e = Math.sqrt(es);
|
||||
lon_deg = merc.lon;
|
||||
lat_deg = merc.lat;
|
||||
lon_deg /= a;
|
||||
lat_deg /= a;
|
||||
lon_deg /= k0;
|
||||
lat_deg = phi2(Math.exp(-lat_deg/k0), e);
|
||||
lon_deg *= (180/M_PI);
|
||||
lat_deg *= (180/M_PI);
|
||||
return new OpenLayers.LonLat(lon_deg,lat_deg);
|
||||
}
|
||||
|
||||
function phi2 (ts,e) {
|
||||
var eccnth = 0.5*e;
|
||||
var Phi = (PI/2) - 2.0*Math.atan(ts);
|
||||
var dphi;
|
||||
var i=15;
|
||||
do {
|
||||
var con = e*Math.sin(Phi);
|
||||
dphi = (PI/2) - 2.0*Math.atan(ts*Math.pow((1.0-con)/(1.0+con),eccnth))
|
||||
- Phi;
|
||||
Phi += dphi;
|
||||
}
|
||||
while(Math.abs(dphi) > 0.0000000001 && --i);
|
||||
return Phi;
|
||||
}
|
||||
|
||||
function scaleToZoom(scale) {
|
||||
return Math.log(360.0/(scale * 512.0)) / Math.log(2.0);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue