Beruflich Dokumente
Kultur Dokumente
GoogleMapsAPIV3introduccinyprimerospasos
DESARROLLO WEB
GUAS
CURSOS
Google Maps fue desarrollado originalmente por dos hermanos Daneses, Lars y
Jens Rasmussen,co-fundadores de Where 2 Technologies una empresa
dedicada a la creacin de solucionesde mapeo. La empresa fue adquirida por
Google en octubre de 2004, y los dos hermanosluego crearon Google Maps
(tambin son los que estn detrs de Google Wave).
Abimael
Abimael Rodrguez Coln
Rodrguez
abril 4 2011
Antes de que hubiera una API pblica, algunos desarrolladores descubrieron la manera
dehackear Google Maps para incorporar los mapas en sus propios sitios web. Esto llev a
Googlea la conclusin de que haba una necesidad de una API pblica, y en junio de 2005
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
1/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
fuelanzado pblicamente.
El mashup por primera vez en Internet es a menudo considerado que lo ejerci
Housingmaps.com, una combinacinde Google Maps con los listados de bienes races de
Craiglist.org.Fue creado de hecho antes de la API pblica fuera puesto en libertad y fue
hackeadopor el desarrollador Paul Rademacher. En mayo de 2010,se anunci la versin 3
del API. Ahora es la opcin recomendada para las nuevasaplicaciones de Google Maps y el
siguiente paso en la historia de Google Maps.
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
2/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
Las coordenadas estn expresadas usando nmeros decimales separados por coma. La
latitud siempre precede la longitud. La latitud es positiva si va despus del punto mostrado
en el mapa y negativo si va antes. La longitud es positiva si va arriba del punto y negativa si
va debajo.
En los mapas fsicos, las coordenadas estn expresadas en grados, as que la posicin
dePuerto Rico sera:
181470 N 662968 W
La forma de convertir estos datos a decimales sera:
(181470 N) =(18 + (14 / 60) + (70 / 3600)) =18.252
(662968 W) =-(66 + (29 / 60) + (68 / 3600)) =-66.8627
La longitud se multiplica por negativo, porque est a la izquierda (oeste) del punto 0,0. Para
esta gua solo vamos a estar trabajando con decimales.
3/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
?
<!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN"
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttpequiv="ContentType"content="text/html;charse
<title>test</title>
<style>
*{margin:0;padding:0;}
html,body,#map{
width:100%;
height:100%;
}
</style>
<scripttype="text/javascript"src="http://maps.google.com
<scripttype="text/javascript"src="js/map.js"></script
</head>
<body>
<divid="map"></div>
</body>
</html>
En el siguiente cdigo:
1
?
<scripttype="text/javascript"src="http://maps.google.com/maps
La direccin apunta al API, pero tambin se requiere pasar una cadena de consulta con la
llave sensor. Esto le indica a Google si el dispositivo que usa el mapa, tiene un dispositivo
quedetermina la geolocalizacin, como por ejemplo un GPS. Es forzoso mencionarlo y
como valorindicar si es falso o cierto. Falso para los que no lo usan y cierto para los que s
lo usan.Esto lo usa Google para proveer estadsticas a sus proveedores. No tiene que ver
con habilitarlo para la geolocalizacin.
Tambin se aadi el lenguaje, aunque el API trata de determinar cual es el lenguaje a
mostrar, pero puedes especificarlo usando la llave language. En este ejemplo no hemos
mencionado la llave api ya que para la versin 3 no se usa.
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
4/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
<scripttype="text/javascript"src="map.js"></script>
?
window.onload=function(){
varoptions={
zoom:8
,center:newgoogle.maps.LatLng(18.2,66.4)
,mapTypeId:google.maps.MapTypeId.SATELLITE
};
varmap=newgoogle.maps.Map(document.getElementById('map'
};
Esto nos trae el mapa de Puerto Rico. Qu es lo que hace? Primero indicamos que
queremos que elmapa se muestre una vez se haya cargado toda la informacin con el
evento window.onload. Para iniciar el mapahacemos uso de la clase
google.maps.Map(). A este se le indica dos argumentos:
La referencia hacia el elemento que mostrar el mapa, en este caso el elemento <div>
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
5/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
MapOptions
MapOptions contiene la informacin de cmo queremos ver el mapa y cmo queremos
que se comporte. Se requiere tres propiedades:
zoom: Define el zoom inicial. Debe ser un nmero entre el 1 y el 23. El 1 es el mapa
completamente afuera y 23 es completamente adentro.
center: Define el centro del mapa con las coordenadas. Las coordenadas debe
indicarse usando el mtodo google.maps.LatLng(latitud, longitud).
mapTypeId: Define que tipo de mapa se desea mostrar al inicio.
Los opcionales son:
keyboardShortcuts: Habilita o inhabilita el uso del teclado. Las teclas a usar son las
flechas para mover el mapa y +/- para el zoom.
Valores: true|false, por defecto true.
disableDoubleClickZoom: Habilita o inhabilita el doble click del ratn para hacer
zoom.
Valores: true|false por defecto false.
draggable: Habilita o inhabilita el poder arrastrar el mapa.
Valores: true|false, por defecto true.
scrollwheel: Habilita o inhabilita el poder hacer zoom con la rueda del ratn.
Valores: true|false, por defecto true.
draggableCursor: Indica que tipo de cursor deseas mostrar cuando el ratn est
encima del mapa. El valor es del tipo cadena y pueden ser los que una computadora
tiene por defecto y la mayora de los que estn mencionado en el siguiente listado o
puede ser uno personalizado y la ruta puede ser local (en el servidor de la aplicacin) o
una direccin web externa.
draggingCursor: Indica que tipo de cursor deseas mostrar cuando el ratn est
presionado en el mapa. El valor es del tipo cadena y pueden ser los que una
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
6/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
7/17
7/9/2015
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
GoogleMapsAPIV3introduccinyprimerospasos
,backgroundColor:'#ffffff'
,noClear:true
,disableDefaultUI:true
,keyboardShortcuts:false
,disableDoubleClickZoom:true
,draggable:false
,scrollwheel:false
,draggableCursor:'move'
,draggingCursor:'move'
,mapTypeControl:true
,mapTypeControlOptions:{
style:google.maps.MapTypeControlStyle.HORIZONTAL_
,position:google.maps.ControlPosition.TOP_LEFT
,mapTypeIds:[
google.maps.MapTypeId.SATELLITE
]
}
,navigationControl:true
,streetViewControl:true
,navigationControlOptions:{
position:google.maps.ControlPosition.TOP_RIGHT
,style:google.maps.NavigationControlStyle.ANDROI
}
,scaleControl:true
,scaleControlOptions:{
position:google.maps.ControlPosition.TOP_LEFT
,style:google.maps.ScaleControlStyle.DEFAULT
}
};
varmap=newgoogle.maps.Map(document.getElementById('map
};
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
8/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
?
01
window.onload=function(){
02
varoptions={
03
zoom:8
04
,center:newgoogle.maps.LatLng(18.2,66.4)
05
,mapTypeId:google.maps.MapTypeId.SATELLITE
06
07
,backgroundColor:'#ffffff'
08
,noClear:true
09
,disableDefaultUI:true
10
,keyboardShortcuts:false
11
,disableDoubleClickZoom:true
12
,draggable:false
13
,scrollwheel:false
14
,draggableCursor:'move'
15
,draggingCursor:'move'
16
17
,mapTypeControl:true
18
,mapTypeControlOptions:{
19
style:google.maps.MapTypeControlStyle.HORIZONTAL_
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
9/17
20
,position:google.maps.ControlPosition.TOP_LEFT
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
20
,position:google.maps.ControlPosition.TOP_LEFT
21
,mapTypeIds:[
22
google.maps.MapTypeId.SATELLITE
23
]
24
}
25
,navigationControl:true
26
,streetViewControl:true
27
,navigationControlOptions:{
28
position:google.maps.ControlPosition.TOP_RIGHT
29
,style:google.maps.NavigationControlStyle.ANDROI
30
}
31
,scaleControl:true
32
,scaleControlOptions:{
33
position:google.maps.ControlPosition.TOP_LEFT
34
,style:google.maps.ScaleControlStyle.DEFAULT
35
}
36
};
37
38
varmap=newgoogle.maps.Map(document.getElementById('map
39
40
map.setOptions({
41
zoom:10
42
,center:newgoogle.maps.LatLng(18.17,66.42)
43
,mapTypeId:google.maps.MapTypeId.TERRAIN
44
45
,keyboardShortcuts:true
46
,disableDoubleClickZoom:false
47
,draggable:true
48
,scrollwheel:true
49
,draggableCursor:'hand'
50
,draggingCursor:'hand'
51
52
,mapTypeControlOptions:{
53
style:google.maps.MapTypeControlStyle.DROPDOWN_ME
54
,position:google.maps.ControlPosition.TOP_RIGHT
55
,mapTypeIds:[
56
google.maps.MapTypeId.ROADMAP
57
,google.maps.MapTypeId.SATELLITE
58
]
59
}
60
61
,navigationControlOptions:{
62
position:google.maps.ControlPosition.TOP_LEFT
63
,style:google.maps.NavigationControlStyle.ZOOM_P
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
10/17
64
}
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
64
65
66
67
68
69
70
71
,scaleControlOptions:{
position:google.maps.ControlPosition.BOTTOM_LEFT
,style:google.maps.ScaleControlStyle.DEFAULT
}
});
};
Getters y Setters
Existen unos mtodos que nos permiten solo modificar y/o obtener los resultados de las
propiedades que son requisitos.
getZoom()
setZoom(123)
getCenter()
setCenter(google.maps.LatLng(latitud,longitud))
getMapTypeId()
setMaptTypeId(google.maps.MapTypeId.*)
Uniendo todo
01
02
03
04
window.onload=function(){
varoptions={
zoom:8
,center:newgoogle.maps.LatLng(18.2,66.4)
05
,mapTypeId:google.maps.MapTypeId.SATELLITE
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
11/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
05
,mapTypeId:google.maps.MapTypeId.SATELLITE
06
07
,backgroundColor:'#ffffff'
08
,noClear:true
09
,disableDefaultUI:true
10
,keyboardShortcuts:false
11
,disableDoubleClickZoom:true
12
,draggable:false
13
,scrollwheel:false
14
,draggableCursor:'move'
15
,draggingCursor:'move'
16
17
,mapTypeControl:true
18
,mapTypeControlOptions:{
19
style:google.maps.MapTypeControlStyle.HORIZONTAL_
20
,position:google.maps.ControlPosition.TOP_LEFT
21
,mapTypeIds:[
22
google.maps.MapTypeId.SATELLITE
23
]
24
}
25
,navigationControl:true
26
,streetViewControl:true
27
,navigationControlOptions:{
28
position:google.maps.ControlPosition.TOP_RIGHT
29
,style:google.maps.NavigationControlStyle.ANDROI
30
}
31
,scaleControl:true
32
,scaleControlOptions:{
33
position:google.maps.ControlPosition.TOP_LEFT
34
,style:google.maps.ScaleControlStyle.DEFAULT
35
}
36
};
37
38
varmap=newgoogle.maps.Map(document.getElementById('map
39
40
map.setOptions({
41
zoom:10
42
,center:newgoogle.maps.LatLng(18.17,66.42)
43
,mapTypeId:google.maps.MapTypeId.TERRAIN
44
45
,keyboardShortcuts:true
46
,disableDoubleClickZoom:false
47
,draggable:true
48
,scrollwheel:true
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
12/17
49
,draggableCursor:'hand'
7/9/2015
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
GoogleMapsAPIV3introduccinyprimerospasos
,draggableCursor:'hand'
,draggingCursor:'hand'
,mapTypeControlOptions:{
style:google.maps.MapTypeControlStyle.DROPDOWN_ME
,position:google.maps.ControlPosition.TOP_RIGHT
,mapTypeIds:[
google.maps.MapTypeId.ROADMAP
,google.maps.MapTypeId.SATELLITE
]
}
,navigationControlOptions:{
position:google.maps.ControlPosition.TOP_LEFT
,style:google.maps.NavigationControlStyle.ZOOM_P
}
,scaleControlOptions:{
position:google.maps.ControlPosition.BOTTOM_LEFT
,style:google.maps.ScaleControlStyle.DEFAULT
}
});
map.setZoom(9);
varzoomLevel=map.getZoom();
map.setCenter(newgoogle.maps.LatLng(18.17,66.3));
varcenterOfMap=map.getCenter();
map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
varmapTypeIdOfMap=map.getMapTypeId();
alert(zoomLevel+''+centerOfMap+''+mapTypeI
};
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
13/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
Compartir
135
Twittear
Abimael
Rodrguez
Coln
Compartir
Lo peor y lo peor de
trabajar para una startup
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
Los 10 trabajos ms
riesgosos para un dron
14/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
francisco
Bastanteeducativoelarticulo,gracias!
Ricardo
Muybuenaintroduccin!Esperoconganaslassiguientespartes!
Saludos
LucianoMuoz
Muybuenoelarticulo,esperoconansiasloquevendrayaquemeinteresamuchoestetemaperohastaelmomentonohabiatenido
tiempodeponermeavercomofuncionalaAPI
Muchasgracias
SaludosdesdeArgentina
Andrs
Excelenteintroduccin!
VictorSnchez
MuytilAbimael.Yaledarunachequeaditacuandollegueacasa.Saludos.
RBZ
Muybueno,Abimael.Claroysencillo,directoamarcadores.
popobcn
Simplementemagnifico.Estoydesarrollandoalgorelacionadoylaverdadesqueconlaintroduccinquehashechoesfrancamente
detallada.
andreshenao
excelentearticulo,lofelicitoAbimael.
ConsejosprcticosparaelInfoWindowenGoogleMaps
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
15/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
[]empezarusaremoselmismoreadetrabajoqueelcaptulo1(GoogleMapsAPIV3introduccinyprimerospasos)ycaptulo2
(Marcadores,posicionarunaimagenenelmapa).Luegoiremosmodificndoloconforme[]
Arturo
saludos
Estabastatebuenoyentendibleperotengodudasconkeydegoogledondepuedoencontrarejemplosporfavorunaayuda,porque
tengoqgraficarunarutadesdeunpuntoxaunpuntoyutilizandounalgoritmodebusquedaenjava
AbimaelRodrguezColn
Enelcaptulo4estaremoshablandosobrepoligonosypolilineas.
Gabriel
Tabnoperoacabodeprobarelcodigoquedasparainiciaryenunformatoxhtmlnomedspliegaelmapa:Scopietodoigualypor
ningunladoencuentrosolucionortarealaestosirveoNOlaAPIv3enXHTML?
Gabriel
LohetesteadoyenarchivosconextensionXHTMLnosedespliegaelmapaparecequenosirveenestetipodedocumento,porque
useelmismocodigoperoenunHTMLcreadodesdeNetBeansyfuncionoperfectamente
AbimaelRodrguezColn
Interesanteloqueindicas.Acabodecopiarlamismareadetrabajo,lopeguenunarchivoaversidecasualidadtenaalgn
caracterraroysemostrlainformacinusandoelmismoformatoqueindiquarriba.
AbimaelRodrguezColn
Oh,tambinhayquerecordarqueleestoyindicandoalarchivoqueloscaracteressonconlacodificacinutf8.Esoquieredecirque
elarchivodebetambindetenereseformato,sino,entoncestrateaversiconiso88591lefuncionacorrectamente.
Gabriel
Puesesquesoyapenasunaprendizenestodelosdesarrollosweb,yestoyusandoNetbeansparacrearlosproyectoswebque
empiezoadesarrollar,entoncesnosecomocreenetbeanslosarchivos.XHTMLy.HTMLqueledoycrearporahi,hastaahoraretome
estoynomemuestraelmapaninadacopiandoelcodigoquetenesenelejemplo
Ibiza
Hola.Graciasportuejemploquemehafuncionadoalaprimera,aunquemehaquedadounaduda.Estoycambiandoalav3para
utilizarlasfuncionalidadesdelsensor.Elproblemaqueveoesquetenemosquesernosotrosquienleindiquemosagoogleel
dispositivoqueestautilizandoelusuario.YaqumepierdoCmoaveriguoyoqueutilizaelusuarioysisudispositivoescompatible
conlautilizacindelsensor?Oestafuncionalidadesparadecirleagooglesiqueremosquemuestreonolaposicindelusuario?
Unsaludo
AbimaelRodrguezColn
Saludos,
Desconozcosiexistealgunalibreraoalgnmtodoquedetectesieldispositivotienesensor.Peropodrasbuscarenlascabeceras
queenviaeldispositivoparaverificarculdispositivoes,yasindicaralAPIsitieneono.PorejemploconPHPexistelavariable
$_SERVERquetepuedebrindaresainformacin
Moisex
muybuentutorial,muchisimasgracias
Andy
Excelenteartculo!Megustamuchoestoqueestshaciendo,ojalaysigasasconmsymsartculos..bueno,esperonotecanses
Tustutosmevancomoanilloaldedoparaunpequeoexperimentoconelgooglemapsquedeseabahacertiempitoatrs.
Saludos,
Unabrazo!
frajagon
Excelenteentrada,despejaronvariasdudasdecomoresolverunospequeosproblemasqueteniaenunaimplementacinquellevo
acabo
Gracias.
Renzo
Porfavor!!!!
alguienmepuedeayudaraencontrarunamanerafacilde
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
16/17
7/9/2015
GoogleMapsAPIV3introduccinyprimerospasos
obternerlascoordenadas,ypodermodificarlasymanejarlas
conclaridadengooglemaps.
Heencontradoestoengooglelabs,
http://maps.google.es/support/bin/answer.py?hl=es&answer=1334236&ctx=cb&src=cb&cbid=od6v07pibec8&cbrank=1
perolascoordenadas
quemedacuandolasaplico,noconcuerdan.
PaintballMadrid
MuyBueno,hasidodegranayudayaqueteniaalgunasdudas,garciasyunSaludoatodos.
http://www.maestrosdelweb.com/googlemapsapiv3introduccionyprimerospasos/
17/17