GitHub Enterprise admite representar archivos de mapa geoJSON y topoJSON dentro de repositorios GitHub Enterprise. Simplemente confirma el archivo como lo harías normalmente utilizando una extensión .geojson
o .topojson
. También se admiten archivos con una extensión .json
, pero únicamente si type
están configurados para FeatureCollection
, GeometryCollection
, o topology
. Después, navega hasta la ruta del archivo geoJSON en GitHub.com.
Cuando haces clic en el ícono de papel a la derecha, también verás los cambios realizados a ese archivo como parte de una confirmación de cambios.
Tipos de Geometry
Los mapas en GitHub Enterprise utilizan Leaflet.js y admiten todos los tipos de Geometry indicados en las especificaciones de geoJSON (Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon y GeometryCollection). Los archivos TopoJSON deberían ser del tipo "Topology" y adherir a las especificaciones topoJSON.
Características de estilo
Puedes personalizar la manera en que se muestran las características, como especificar un color particular o agregar un ícono descriptivo, al pasar metadatos adicionales dentro de las propiedades del objeto geoJSON. Las opciones son:
marker-size
-small
,medium
, olarge
marker-color
- color RGB hex válidomarker-symbol
- un ID del ícono del proyecto Maki o un carácter único alfanumérico (a-z o 0-9).stroke
- color de una línea o borde de un polígono (RGB)stroke-opacity
- opacidad de una línea o borde de un polígono (0.0 - 1.0)stroke-width
- ancho de una línea o borde de un polígonofill
- el color del interior de un polígono (GRB)fill-opacity
- la opacidad del interior de un polígono (0.0-1.0)
Consulta la versión 1.1.0 de las especificaciones de estilo simple abierto para obtener más información.
Incrustrar tu mapa en otro lugar
Deseas hacer disponible tu mapa geoJSON en un lugar distinto a GitHub Enterprise? Simplemente modifica esta plantilla, y colócala en alguna página HTML que admita javascript (p. ej., Páginas de GitHub):
<script src="https://embed.github.com/view/geojson/<username>/<repo>/<ref>/<path_to_file>"></script>
Por ejemplo, si la URL de tu mapa es github.com/benbalter/dc-wifi-social/blob/master/bars.geojson, tu código de incrustación sería:
<script src="https://embed.github.com/view/geojson/benbalter/dc-wifi-social/master/bars.geojson"></script>
Por defecto, el mapa incrustado es 420px x 620px, pero puedes personalizar el resultado al pasar variables de alto y ancho como parámetros al final, como ?height=300&width=500
.
Nota: ref
puede ser una rama (como master
), o el hash para una confirmación de cambios individual (como 2391ae
).
Agrupación
Si tu mapa contiende una gran cantidad de marcadores (aproximadamente más de 750), GitHub automáticamente agrupará marcadores cercanos en niveles superiores de zoom. Simplemente haz clic la agrupación o el zoom de acercamiento para ver los marcadores individuales.
Algo sucede con el mapa subyacente
Los datos del mapa subyacente (nombres de calles, caminos, etc.) están controlados por OpenStreetMap, un proyecto colaborativo para crear un mapa editable gratuito del mundo. Si notas que algo no está del todo bien, ya que es código abierto, simplemente sign up y envía un arreglo.
Solución de problemas
Si estás teniendo problemas al representar archivos geoJSON, asegúrate que tienes un archivo geoJSON válido al ejecutarlo en un limpiador de geoJSON. Si tus puntos no aparecen donde lo esperas (p. ej., aparecen en la mitad del océano), es probable que los datos estén en una proyección que actualmente no se admite. Actualmente, GitHub Enterprise admite únicamente la proyección urn:ogc:def:crs:OGC:1.3:CRS84
.
Por otra parte, si tu archivo .geojson
es particularmente grande (superior a 10 MB), no es posible representarlo dentro del navegador. Si ese es el caso, por lo general verás un mensaje similar a este:
Todavía se podrían representar los datos al convertir el archivo .geojson
a TopoJSON, un formato de compresión que, en algunos casos, puede reducir el tamaño del archivo hasta un 80 %. Por supuesto, siempre puedes partir el archivo en fragmentos más pequeños (como por estado o por año), y almacenar los datos como archivos múltiples dentro del repositorio.