Conversion de coordernadas

Cualquier cosa que tenga que ver con los mapas, excepto para conseguir los Topohispania para lo cual hay un foro específico más abajo

Moderador: Sebasbcn

Responder
zepjau
Mensajes: 25
Registrado: 23 Sep 2010 21:31
Modelo GPS: BT747Pro
Ubicación: Sevilla

Conversion de coordernadas

Mensaje por zepjau »

Hola, en una pagina web he visto unas funciones que puedo aplicar al desarrollo que "intento crear" pero me encuentro con el problema que las coordenadas que utilizo (las obrtengo de un fichero gpx) son en el siguiente formato:

var r1 = punto( -6.0463544851,37.8484789, "Salida" );

Pero la fucnion para pintar el punto utiliza es la siguiente:


function rasti(x,y,rnro) {
var point = new OpenLayers.Geometry.Point(x, y);
var pointFeature = new OpenLayers.Feature.Vector(point);
var pointFeature = new OpenLayers.Feature.Vector(point);
pointFeature.attributes = {
nro: rnro,
favColor: 'orange',
align: "cm",
xOffset: 10,
yOffset: 10
};
return pointFeature;
El problema es que me la pinta en africa,¿?.
¿Qhe hay que añadir a la funcion para que la pinte donde debe ?. En este caso cerca de doñana?.

Gracias y un saludo,
Javier

Avatar de Usuario
AntonioGPS
Site Admin
Mensajes: 12415
Registrado: 28 Dic 2005 12:21
Modelo GPS: GPSMAP 60CX y eTrex 20
Ubicación: Córdoba
Contactar:

Re: Conversion de coordernadas

Mensaje por AntonioGPS »

No tienes declarado el hemisferio norte.
COn esas coordenadas, puedes emplazar un punto en cada uno de los hemisferios. Las dos tendrian las mismas coordenadas
Y no veo en la función que te permita ni siquiera definirlo
Antonio Rodriguez Franco
http://www.elgps.com
Accede a mis Rutas GPS con Wikiloc
NOTA IMPORTANTE: No atenderé consultas realizadas mediante mensajes privados, que por eso he creado este foro
Ayúdame a mantener este foro. Pulsa sobre la publicidad

zepjau
Mensajes: 25
Registrado: 23 Sep 2010 21:31
Modelo GPS: BT747Pro
Ubicación: Sevilla

Re: Conversion de coordernadas

Mensaje por zepjau »

Muchas gracias por la respuesta.

Pero, ¿como lo declaro?.
Disculpa mi ignorancia.

Un saludo,
Javier.

Avatar de Usuario
AntonioGPS
Site Admin
Mensajes: 12415
Registrado: 28 Dic 2005 12:21
Modelo GPS: GPSMAP 60CX y eTrex 20
Ubicación: Córdoba
Contactar:

Re: Conversion de coordernadas

Mensaje por AntonioGPS »

No lo se..
Has descrito un programa con funciones como OpenLayers.Feature.Vector(point) que no se como estan definidas...

Nos has mostrado una parte del programa, y no la totalidad de él.. Y bueno, si no se hace, no se ve como funciona

Yo veo que..
La funcion rasti llama a las dos coordenadas de la linea de texto y la asigna a X e y. Y luego tambien asigna el nombre asociado a dicha coordenada que en este caso se llama Salida

Cuando ya tiene memorizado X e Y (las coordenadas), genera el punto con la funcion OpenLayers.Geometry.Point(x, y);
Y luego sus propiedades, pintando en naranja el texto..

Luego devuelve todo a otra funcion llamada pointFeature

pero veo que falta..
1. EL modo en el que hace un parsing (lee..) las coordenadas del texto (del track...)
2. EL modo en el que se indica el hemisferio
3. Y todo lo demas..

En resumen. HAs enviado una simple rutina que es incompleta

SI me mandas el programa completo, no te prometo nada porque no me voy a poner a programar, pero si veo algo de manera facil, te lo digo
Antonio Rodriguez Franco
http://www.elgps.com
Accede a mis Rutas GPS con Wikiloc
NOTA IMPORTANTE: No atenderé consultas realizadas mediante mensajes privados, que por eso he creado este foro
Ayúdame a mantener este foro. Pulsa sobre la publicidad

zepjau
Mensajes: 25
Registrado: 23 Sep 2010 21:31
Modelo GPS: BT747Pro
Ubicación: Sevilla

Re: Conversion de coordernadas

Mensaje por zepjau »

Gracias Antonio, te adjunto el programa:

Espero que este claro y te sirva.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


<title>PRUEBA GPX / OpenLayers</title>

<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<link rel="stylesheet" href="estilos.css" type="text/css">

<script src="http://maps.google.com/maps/api/js?sens ... "></script>
<script type="text/javascript">
var map;
var apiKey = "AuSCzBU2JhLBqZTlNU1jboaYXY-tEo_Yf3zJMYoebBvnRyC5KPx6DWNqYg6uKxzN";
var osm, gmap, road, hybrid, aerial;

// añadido el 20/4
var WGS84 = new OpenLayers.Projection('EPSG:4326');
var MERCATOR = new OpenLayers.Projection('EPSG:900913');
//

function marca(x,y,rnro) {
// añadido el 20/4 -->.transform(WGS84, MERCATOR);
var point = new OpenLayers.Geometry.Point(x, y).transform(WGS84, MERCATOR);

// Esto le he añadido a las 20:28 de 19/4
// var lonlat = new OpenLayers.LonLat( x, y);
// var point = new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat);
//
var pointFeature = new OpenLayers.Feature.Vector(point);
pointFeature.attributes = {
nro: rnro,
favColor: 'orange',
align: "cm",
xOffset: 10,
yOffset: 10
};
return pointFeature;
}
function ruta(name,gpxfile, color) {
var stylemap = new OpenLayers.StyleMap({
"default": {
strokeColor: color,
strokeWidth: 2
}
});
gpx_layer = new OpenLayers.Layer.Vector(name, {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: gpxfile,
format: new OpenLayers.Format.GPX({
extractRoutes: false,
extractAttributes: false,
extractWaypoints: false
})
}),
styleMap: stylemap,
isBaseLayer: false,
visibility: false
})
return gpx_layer;
}

function init(){
/* NO LO HE ASTERISCADO YO
map = new OpenLayers.Map( 'map');
layer = new OpenLayers.Layer.OSM( "Simple OSM Map");
map.addLayer(layer);
*/
map = new OpenLayers.Map({
div: "map",
allOverlays: false
});
osm = new OpenLayers.Layer.OSM( { isBaseLayer: true, layers: "basic" } );
osm.setIsBaseLayer(true);
osm.setName("OpenStreetMap");
gmap = new OpenLayers.Layer.Google("Google Streets", { isBaseLayer: true, visibility: false, layers: "basic" });



road = new OpenLayers.Layer.Bing({
name: "Bing Road",
key: apiKey,
type: "Road",
visibility: false
});
road.setIsBaseLayer(true);
hybrid = new OpenLayers.Layer.Bing({
name: "Bing Hybrid",
key: apiKey,
type: "AerialWithLabels",
visibility: false,
isBaseLayer: true
});
aerial = new OpenLayers.Layer.Bing({
name: "Bing Aerial",
key: apiKey,
type: "Aerial",
visibility: false,
isBaseLayer: true
});


map.addLayers([osm, gmap, road, hybrid, aerial]);

map.setBaseLayer(hybrid);


var vectorLayer = new OpenLayers.Layer.Vector("marca", {
styleMap: new OpenLayers.StyleMap({'default':{
strokeColor: "#FF6200",
strokeOpacity: 1,
strokeWidth: 3,
fillColor: "#000000",
fillOpacity: 0.1,
pointRadius: 6,
pointerEvents: "visiblePainted",
// label with \n linebreaks
label : "${nro}",

fontColor: "${favColor}",
fontSize: "12px",
fontFamily: "Courier New, monospace",
fontWeight: "bold",
labelAlign: "${align}",
labelXOffset: "${xOffset}",
labelYOffset: "${yOffset}"
}})
});


var rs = marca( 37.8484789, -6.0463544851, "Salida" );
var r1 = marca( 37.8388925063, -6.0454420155, 1 );
var r2 = marca( 37.8382622708, -6.0423381939, 2 );
var r3 = marca( 37.8403936557, -6.0401817979, 3 );
var r4 = marca( 37.840572223, -6.0353455491, 4 );
var r5 = marca( 37.8432056299, -6.0372219475, 5 );
var r6 = marca( 37.8456760923, -6.034851033, 6);
var r7 = marca( 37.846597529, -6.0387007911, 7 );
var r8 = marca( 37.8470866486, -6.0415256041,8 );
var r9 = marca( 37.8465947566, -6.0424797637, 9 );
var r10 = marca( 37.8452594203, -6.043237256, 10 );
var r11 = marca( 37.8449605746, -6.0431642827, 11 );
var r12 = marca( 37.8443432586, -6.0454420155, "Meta" );

vectorLayer.addFeatures([rs, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12]);
map.addLayer(vectorLayer);


// map.setCenter((-6.0463544851,37.84484789 ), 12);
// <trkpt lat="37.229182" lon="-6.191705">


map.setCenter(
new OpenLayers.LonLat(-6.1883146044,37.2291077879 ).transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
), 16
);

/*
var aika_style = new OpenLayers.StyleMap({
"default": {
strokeColor: "#FFFF00",
strokeWidth: 2
}
});
var sm_style = new OpenLayers.StyleMap({
"default": {
strokeColor: "#00FF00",
strokeWidth: 2
}
});*/
/*
laser_layer = new OpenLayers.Layer.Vector("Laser (50p)", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "laser.gpx",
format: new OpenLayers.Format.GPX({
extractRoutes: false,
extractAttributes: false,
extractWaypoints: false
})
}),
styleMap: laser_style,
isBaseLayer: false,
visibility: false
})*/
prueba_layer = ruta("Prueba_1", "prueba.gpx", "#0000FF" );
prueba2_layer = ruta("Prueba_2" , "prueba2.gpx", "#FF0000");
map.addLayer(prueba_layer);
map.addLayer(prueba2_layer);
map.addLayer(prueba_layer);
map.addControl( new OpenLayers.Control.ScaleLine({ bottomOutUnits: "km", bottomInUnits: "m"}) );
map.addControl( new OpenLayers.Control.MousePosition() );
map.addControl(new OpenLayers.Control.LayerSwitcher());
}
</script>
</head>
<body onload="init()">
<h1 id="title">Prueba GPX -- </h1>

<div id="tags">
openstreetmap basic
</div>

<div id="shortdesc"><a href="http://openlayers.org">
<p>OpenLayers</a> Prueba GPX.</p>


</div>

<div id="map" class="smallmap"></div>


</body>
</html>

Avatar de Usuario
AntonioGPS
Site Admin
Mensajes: 12415
Registrado: 28 Dic 2005 12:21
Modelo GPS: GPSMAP 60CX y eTrex 20
Ubicación: Córdoba
Contactar:

Re: Conversion de coordernadas

Mensaje por AntonioGPS »

Aghhhhh!!!!
MIra esta linea
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>

Es un java de la API de Google a la que no tengo acceso.. NO te puedo ayudar
Lo raro es que te lo haga mal...
Antonio Rodriguez Franco
http://www.elgps.com
Accede a mis Rutas GPS con Wikiloc
NOTA IMPORTANTE: No atenderé consultas realizadas mediante mensajes privados, que por eso he creado este foro
Ayúdame a mantener este foro. Pulsa sobre la publicidad

zepjau
Mensajes: 25
Registrado: 23 Sep 2010 21:31
Modelo GPS: BT747Pro
Ubicación: Sevilla

Re: Conversion de coordernadas

Mensaje por zepjau »

Disculpa la demora.
Gracias por todo. El programa si funciona me coloca los puntos mas o menos donde pretendo.
Al añadir la funcion :

var point = new OpenLayers.Geometry.Point(x, y).transform(WGS84, MERCATOR);
se solucionó todo.

Voy a añadir una duda nueva.

Un saludo,
Javier.

Avatar de Usuario
AntonioGPS
Site Admin
Mensajes: 12415
Registrado: 28 Dic 2005 12:21
Modelo GPS: GPSMAP 60CX y eTrex 20
Ubicación: Córdoba
Contactar:

Re: Conversion de coordernadas

Mensaje por AntonioGPS »

genial..
Lo que no sabçia es que pudieras añadir lo de la transformacion..
Antonio Rodriguez Franco
http://www.elgps.com
Accede a mis Rutas GPS con Wikiloc
NOTA IMPORTANTE: No atenderé consultas realizadas mediante mensajes privados, que por eso he creado este foro
Ayúdame a mantener este foro. Pulsa sobre la publicidad

Lisandro
Mensajes: 1
Registrado: 26 Oct 2012 23:13
Modelo GPS: GPSMap62s

Conversion de coordernadas

Mensaje por Lisandro »

Que tal todos:

Quisiera por favor alguien me mostrara el algoritmo para la conversión de LATLON hacia otros sistemas de coordenadas, por ejemplo el que o uso es Cuba Sur, este viene muchos programas como el ILWIS, pero no sé cómo lo implementa

Saludos :wink:

Avatar de Usuario
Kike_GL
Mensajes: 194
Registrado: 14 May 2009 01:07
Modelo GPS: Garmin GPSmap 276c
Ubicación: Lima-Perú
Contactar:

Re: Conversion de coordernadas

Mensaje por Kike_GL »

Te refieres al NAD27 Cuba ? donde la Habana seria 17 Q 358009 2556751
Saludos, Kike_GL
www.perut.org

Responder