google-maps - para - google maps to arcgis
¿La mejor manera de superponer un archivo de forma ESRI en Google Maps? (7)
¿Cuál es la mejor manera de superponer un shapefile en Google Maps?
Después de leerlo, sugiere que la conversión de shapefile a KML y la superposición de KML en el mapa de Google es una opción. Si ese es el caso, ¿cómo convierto un shapefile en KML?
Creo que habrá algunas herramientas de código abierto disponibles para esta conversión. ¿Alguien puede apuntar a una herramienta para encubrir un shapefile a KML sin ninguna pérdida de datos?
2018 ya ... Encontré esta fantástica herramienta en línea http://mapshaper.org/ para convertir archivos shape de ESRI a SVG, TopoJSON, GeoJSON.
Aquí está la explicación de cómo usarlo https://www.statsilk.com/maps/convert-esri-shapefile-map-geojson-format
¡Rápido y directo! :)
Importe el Shapefile en Google FusionTables ( http://www.google.com/fusiontables ) usando http://www.shpescape.com/ y desde allí puede usar los datos de varias maneras, por ej. mostrarlo usando GoogleMaps.
Me gusta usar (open source y gui friendly) Quantum GIS para convertir el shapefile a kml.
La API de Google Maps admite solo un subconjunto del estándar KML . Una limitación es el tamaño del archivo.
Para reducir el tamaño de su archivo, puede utilizar la función "simplificar geometrías" de Quantum GIS . Esto "suaviza" polígonos.
Luego puede seleccionar su capa y hacer un "guardar como kml" en ella.
Si necesita procesar un grupo de archivos, el proceso se puede combinar con el comando ogr2ogr de Quantum GIS desde el shell osgeo4w.
Finalmente, recomiendo comprimir tu kml (con tu programa de compresión favorito) para reducir el tamaño del archivo y guardarlo como kmz.
No usaría KML. En su lugar, use GeoJSON que puede consumir de forma nativa en la API de Google Maps ahora. Es una característica más nueva que no existía a partir de las respuestas originales.
En cualquier caso, simplemente abra el archivo SHP en Quantum GIS , y luego puede mostrarlo en el formato que desee (KML, GeoJSON).
Si está utilizando Google Maps for Work, encontré una extensión premium que maneja cargar shapefiles directamente donde puede conectarse directamente al shapefile que genera desde ESRI. Hice una búsqueda en el sitio de CMaps y encontré este fragmento que cargó en EE. UU. Por el archivo shape del estado: https://gmapsplugin.net/cmapsanalytics/assets/shapes/usstates.shp
var cMap = new centigon.locationIntelligence.MapView();
cMap.key([your_api_key]);
cMap.layerNames(["Basic Shapes"]);
cMap.dbfKeys([[''Alabama'',''Alaska'',''Arizona'',''Arkansas'',''California'',''Colorado'',''Connecticut'',''Delaware'',''District of Columbia'',''Florida'',''Georgia'',''Hawaii'',''Idaho'',''Illinois'',''Indiana'',''Iowa'',''Kansas'',''Kentucky'',''Louisiana'',''Maine'',''Maryland'',''Massachusetts'',''Michigan'',''Minnesota'',''Mississippi'',''Missouri'',''Montana'',''Nebraska'',''Nevada'',''New Hampshire'',''New Jersey'',''New Mexico'',''New York'',''North Carolina'',''North Dakota'',''Ohio'',''Oklahoma'',''Oregon'',''Pennsylvania'',''Rhode Island'',''South Carolina'',''South Dakota'',''Tennessee'',''Texas'',''Utah'',''Vermont'',''Virginia'',''Washington'',''West Virginia'',''Wisconsin'',''Wyoming'']]);
cMap.userShapeKeys([[''Massachusetts'',''Minnesota'',''Montana'',''North Dakota'',''Hawaii'',''Idaho'',''Washington'',''Arizona'',''California'',''Colorado'',''Nevada'',''New Mexico'',''Oregon'',''Utah'',''Wyoming'',''Arkansas'',''Iowa'',''Kansas'',''Missouri'',''Nebraska'',''Oklahoma'',''South Dakota'',''Louisiana'',''Texas'',''Connecticut'',''New Hampshire'',''Rhode Island'',''Vermont'',''Alabama'',''Florida'',''Georgia'',''Mississippi'',''South Carolina'',''Illinois'',''Indiana'',''Kentucky'',''North Carolina'',''Ohio'',''Tennessee'',''Virginia'',''Wisconsin'',''West Virginia'',''Delaware'',''District of Columbia'',''Maryland'',''New Jersey'',''New York'',''Pennsylvania'',''Maine'',''Michigan'',''Alaska'']]);
cMap.labels([[''Massachusetts'',''Minnesota'',''Montana'',''North Dakota'',''Hawaii'',''Idaho'',''Washington'',''Arizona'',''California'',''Colorado'',''Nevada'',''New Mexico'',''Oregon'',''Utah'',''Wyoming'',''Arkansas'',''Iowa'',''Kansas'',''Missouri'',''Nebraska'',''Oklahoma'',''South Dakota'',''Louisiana'',''Texas'',''Connecticut'',''New Hampshire'',''Rhode Island'',''Vermont'',''Alabama'',''Florida'',''Georgia'',''Mississippi'',''South Carolina'',''Illinois'',''Indiana'',''Kentucky'',''North Carolina'',''Ohio'',''Tennessee'',''Virginia'',''Wisconsin'',''West Virginia'',''Delaware'',''District of Columbia'',''Maryland'',''New Jersey'',''New York'',''Pennsylvania'',''Maine'',''Michigan'',''Alaska'']]);
cMap.polyDataSources([centigon.locationIntelligence.CMapAnalytics.DATA_PROVIDERS.SHAPE_DATAPROVIDER]);
cMap.layerTypes([centigon.mapping.Layer.TYPE.POLY]);
cMap.locations([["https://gmapsplugin.net/cmapsanalytics/assets/shapes/usstates.shp"]]);
cMap.panTo("USA");
cMap.zoomLevel(3);
Para actualizar estas respuestas, ESRI ha incluido esta herramienta, conocida como Layer to KML en ArcMap 10.X. Además, existe una herramienta Map to KML .
Simplemente importe la capa deseada (vector o raster) y elija la ubicación de salida, resolución, etc. Herramienta muy simple.
¿Te refieres a shapefile como en un shapefile de Esri ? De cualquier manera, debe poder realizar la conversión usando ogr2ogr , que está disponible en los paquetes GDAL . Necesita el archivo .shp
e idealmente el archivo .dbf
correspondiente (que proporcionará información contextual).
Además, considere usar una herramienta como MapShaper para reducir la complejidad de sus shapefiles antes de transformarlos en KML; reducirá sustancialmente el tamaño del archivo según la cantidad de detalles que necesite.
Script "Exportar a KML" gratuito para ArcGIS 9
Aquí hay una lista de métodos disponibles que alguien encontró.
Además, me parece que la representación más eficiente de una capa de polígono es mediante la codificación de la polilínea de la API de Google Maps, que comprime significativamente los datos lat-lng. Pero entrar en ese formato requiere trabajo: use ArcMap para exportar Shape como coordenadas lat / lng, luego conviértalo en polilíneas usando Google Maps API.