[OpenLayers-Users] How to change the display coordinates
fsalas
fsalas at geocuba.cu
Fri Sep 4 14:48:17 EDT 2009
Andreas , I test your solutions but openlayer
show the standard coordinates format ej. -79.456,21.2365
Why, the formatOutput don't affect ?
..
.
.
map.addControl(mp);
Regards,
salas.
----- Original Message -----
From: "Andreas Hocevar" <ahocevar at opengeo.org>
To: "users" <users at openlayers.org>
Sent: Friday, September 04, 2009 9:13 AM
Subject: Re: [OpenLayers-Users] How to change the display coordinates
Please provide a valid email address, and post follow-up questions to
the list.
You want me to show you how to calculate minutes and seconds?
Here are two functions from Mapbuilder [1]:
/**
* Decimal to DMS conversion
*/
convertDMS = function(coordinate, type) {
var coords = new Array();
abscoordinate = Math.abs(coordinate)
coordinatedegrees = Math.floor(abscoordinate);
coordinateminutes = (abscoordinate - coordinatedegrees)/(1/60);
tempcoordinateminutes = coordinateminutes;
coordinateminutes = Math.floor(coordinateminutes);
coordinateseconds = (tempcoordinateminutes - coordinateminutes)/(1/60);
coordinateseconds = Math.round(coordinateseconds*10);
coordinateseconds /= 10;
if( coordinatedegrees < 10 )
coordinatedegrees = "0" + coordinatedegrees;
if( coordinateminutes < 10 )
coordinateminutes = "0" + coordinateminutes;
if( coordinateseconds < 10 )
coordinateseconds = "0" + coordinateseconds;
coords[0] = coordinatedegrees;
coords[1] = coordinateminutes;
coords[2] = coordinateseconds;
coords[3] = this.getHemi(coordinate, type);
return coords;
}
/**
* Return the hemisphere abbreviation for this coordinate.
*/
getHemi = function(coordinate, type) {
var coordinatehemi = "";
if (type == 'LAT') {
if (coordinate >= 0) {
coordinatehemi = "N";
}
else {
coordinatehemi = "S";
}
}
else if (type == 'LON') {
if (coordinate >= 0) {
coordinatehemi = "E";
} else {
coordinatehemi = "W";
}
}
return coordinatehemi;
}
Now this is what you could do:
var mp = new OpenLayers.Control.MousePosition({
formatOutput: function(lonLat) {
var markup = convertDMS(lonLat.lat, "LAT");
markup += " " + convertDMS(lonLat.lon, "LON");
return markup
}
});
Regards,
Andreas.
[1]
http://svn.codehaus.org/mapbuilder/trunk/mapbuilder/lib/widget/CursorTrack.js
fsalas wrote:
> Thanks Andreas for your cooperations,
>
> but I have one doubt about How I use your function
>
> Is this possible send me one example about?
>
> Best Regards
>
> Salas
>
> ----- Original Message ----- From: "Andreas Hocevar"
> <ahocevar at opengeo.org>
> To: "fsalas" <fsalas at geocuba.cu>
> Cc: <users at openlayers.org>
> Sent: Friday, September 04, 2009 3:38 AM
> Subject: Re: [OpenLayers-Users] How to change the display coordinates
>
>
>> fsalas wrote:
>>> Hi , I need to change the display coordinates in degree minutes and
>>> second format example (NE 50 20´ 23´´ )
>>
>> Just configure your MousePosition control with a custom formatOutput
>> function:
>>
>> var mp = new OpenLayers.Control.MousePosition({
>> formatOutput: function(lonLat) {
>> var markup = "<your output markup here>";
>> return markup
>> }
>> });
>>
>> Regards,
>> Andreas.
>>
>> --
>> Andreas Hocevar
>> OpenGeo - http://opengeo.org/
>> Expert service straight from the developers.
>>
>>
>
>
> ___________________________________
> Dirección de Comunicaciones
> Grupo Empresarial GEOCUBA
> Este mensaje esta libre de virus. Revisado por Kaspersky Antivirus
> ----------------------------------------------------------------------
> Definition count: 2495798
> Definition date: 9/4/2009
> SecurityPlus version: 3.0.5
>
>
>
--
Andreas Hocevar
OpenGeo - http://opengeo.org/
Expert service straight from the developers.
_______________________________________________
Users mailing list
Users at openlayers.org
http://openlayers.org/mailman/listinfo/users
___________________________________
Dirección de Comunicaciones
Grupo Empresarial GEOCUBA
Este mensaje esta libre de virus.
Revisado por Kaspersky Antivirus
----------------------------------------------------------------------
Definition count: 2495798
Definition date: 9/4/2009
SecurityPlus version: 3.0.5
More information about the Users
mailing list