Le labo

Bidouilles et prises de notes en vrac

Accueil > Docs > GIS2 Mapstraction Git

GIS2 Mapstraction Git

vendredi 15 octobre 2010, par b_b

Todo

Tableau de compat GIS
API Cartes et marqueurs Logo des marqueurs KML Geocoder
Cloudmade * oui oui non non
Google Maps V2 * oui oui oui oui
Google Maps V3 oui oui oui oui
OpenLayers oui oui oui oui
Ovi Nokia oui oui non non
Yahoo oui oui non non
Yandex * oui oui non oui
Tableau de test mxn
API Cartes et marqueurs KML Geocoder
Cloudmade * oui non non
Geocommons * non non non
Google Maps V2 * oui oui oui
Google Maps V3 oui oui oui
Mapquest * non non oui
Microsoft Bing non non non
Multimap racheté par microsoft bing
OpenLayers oui oui non
Openspace * carte ok, marker error  ?  ?
Ovi Nokia oui non todo
Yahoo oui non non
Yandex * oui non oui

Git & Github

merger sa branche pour se raccrocher au wagon...

http://learn.github.com/p/branching.html

http://help.github.com/pull-requests/#merging_a_pull_request

se créer des branches pour y balancer chaque idée/fonctionnalité afin de pas se retrouver avec des pull requests longues comme le bras...

http://book.git-scm.com/3_basic_branching_and_merging.html

http://www.unixgarden.com/index.php/administration-systeme/git-pour-les-futurs-barbus

pull remotes branch : http://www.wetware.co.nz/blog/2009/07/pull-a-git-branch-from-remote/

http://www.kitpages.fr/fr/cms/59/aide-memoire-git

Résumé

on merge la branche de topic avec notre master local

git merge topic_branch

s’il y a des conflits signalés les résoudre à la main ou avec git merge tool

on supprime la branche de topic

git branch -d topic_branch

on balance chez github

git push origin master

on vire la branche de topic de chez github si on l’avait pushé

git push origin :topic_branch

ensuite on se "raccroche au wagon" :

git branch -r nous indique qu’on a bien le repo original en distant :

 mxn/integration
 mxn/master
 origin/HEAD -> origin/master
 origin/googlev3_closebubble
 origin/integration
 origin/master

on "maj" le repo distant :

git fetch mxn

on merge notre master local avec le repo distant :

git merge mxn/master

et pour finir on push tout ça chez github :

git push origin master

Une autre solution est d’utiliser git rebase. Cela permet de garder son master "propre" sans avoir de commit pour les merges :

git pull --rebase <remote name> <branch name>

http://gitready.com/advanced/2009/02/11/pull-with-rebase.html

En cas de problème pour virer une branche en remote :

On lance d’abord un ty coup de ménage avec git gc --prune=now.

Si ça ne suffit pas, un coup de prune pour la route ;)

git remote prune branche_remote

http://stackoverflow.com/questions/1072171/how-do-you-remove-an-invalid-remote-branch-reference-from-git

Tester le patch d’une pull request

Se placer dans une branche à jour (master dans notre cas) :

git co master

Si l’url de la pull request est https://github.com/user/repo/pull/139 on va récupérer le patch de celle-ci et l’appliquer à notre branche master :

curl https://github.com/user/repo/pull/139.patch | git am

Pour annuler le merge du patch précédent :

git reset --hard repo/master

Mapstraction

Propriétés des points : marker.addData()

Keys are : label, infoBubble, icon, iconSize, iconAnchor, iconShadow, iconShadowSize, infoDiv, draggable, hover, hoverIcon, openBubble, closeBubble, groupName.

Propriétés des lignes et polygones : polyline.addData()

Keys are : color, width, opacity, closed, fillColor.

Erreurs de chargement des scripts, mxn is undefined

http://lists.mapstraction.com/pipermail/mapstraction-mapstraction.com/2011-January/001117.html

http://lists.mapstraction.com/pipermail/mapstraction-mapstraction.com/2010-February/000716.html

Dans le cas de GIS2 il suffisait de modifier l’appel des scripts de mpastraction :

<script type="application/javascript" src="

par :

<script type="text/javascript" src="

http://zone.spip.org/trac/spip-zone/changeset/49682

Utiliser addProxyMethods() pour étendre Mapstraction

http://lists.mapstraction.com/htdig.cgi/mapstraction-mapstraction.com/2011-August/001177.html

https://gist.github.com/981033

OpenLayers

Étant donné qu’OpenLayers est "super bien" documenté, il faudra penser à rédiger une doc à partir de toutes ces infos et des différents commentaires apportés dans le code de GIS2 et Géodiversité.

mapstractionaddOverlay()

http://openlayers.org/dev/examples/sundials-spherical-mercator.html

Les joies des projections avec openlayers...

http://docs.openlayers.org/library/spherical_mercator.html

http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/

http://www.forumsig.org/showthread.php?t=21318

http://gis.stackexchange.com/questions/8621/overlaying-lat-lon-points-on-google-layer-in-openlayers

La kermesse des popups chez OpenLayers, mais qu’est-ce qui peut bien les différencier ?

1) OpenLayers.Popup

Simple div. Tied to a lat/lon, not an object. Always opens in a single direction. Generally not used : doesn’t fit itself to the right area of the map, and doesn’t provide a ’pretty’ UI.

2) OpenLayers.Popup.Anchored

Simple div, tied to an object (like a marker) which provides an ’offset’. The offset is used to place the popup based on the lonlat, and the offset, based on the preferred relative position — top left, bottom right, etc. Thsi is automatically calculated based on where the lonlat is in the map, designed to open the popup in the directin with the most space.

3) OpenLayers.Popup.AnchoredBubble

Same as above, but with rounded corners using Rico.Corner.

4) OpenLayers.Popup.Framed

Base class for image-based popups, which can be fixedRelativePosition or not. An image (defined in a property of the popup) is used to create the "GUI" aspect of the popup. A base class, this is never meant to be used excpet for extension.

5) OpenLayers.Popup.FramedCloud

A specific instance of the above : Provides image properties for a popup.

Seems to me like all popups are "anchored" and I can’t tell what is the implied distinction in the words "bubble" and "cloud".

Anchored means ’has an offset, and can be offset relative to the position of its ’anchor’’

http://osgeo-org.1803224.n2.nabble.com/popups-td1835221.html

Openstreetmap

I added OpenLayers support this morning and extended the demo to show
it off as well as a few more tests : http://mapstraction.com/mxn/tests/

I realized that you could already support OpenStreetMap tiles using
the Google provider by adding the TileLayer. I extended the
addTileLayer method to allow you to specify if it’s a MapType (and
gets a button in many providers) or just a new base tile layer. I also
extended the documentation to show an example of how to use this :

m.addTileLayer("http://tile.openstreetmap.org/{Z/X/Y.png",
1.0, "OSM", 1, 19, true) ;

http://lists.mapstraction.com/htdig.cgi/mapstraction-mapstraction.com/2009-October/000549.html

GoggleMaps API V3

Geocoder

Gérer les résultats du geocoder avec GoogleMaps API V3 :

http://stackoverflow.com/questions/2989323/gmaps-address-component-types-get-country-name/3125598#3125598

Après avoir commité mxn.googlev3.geocoder.js je tombe là dessus ^^

http://vilimpoc.org/blog/2010/09/26/geocoding-with-mapstraction-v2-and-google-maps-v3/

Il semble y avoir un pb avec les geocoder, voir la suggestion sur github.

mapstraction.addTileLayer() vs google.maps.ImageMapType()

fonction perso getMapTypes() à voir : http://www.william-map.com/20100601/1/map.htm

http://www.geotribu.net/node/209

http://koti.mbnet.fi/ojalesa/v3/osm_dual.htm

mapstraction.getPixelRatio()

pb map.getProjection() en v3 :

http://www.william-map.com/20100416/1/map.htm

Clustering js client

Map fetatures editing tools

leaflet

http://demos.nodeline.com/leaflet_development/ et https://github.com/CloudMade/Leaflet/issues/174

http://demos.nodeline.com/leaflet_development/#addpolygon

googlev2

https://github.com/maxogden/geojson-gmap-editor

googlev3

https://developers.google.com/maps/documentation/javascript/reference#DrawingManagerOptions

polymaps

https://github.com/mapbox/sketch

openlayers

http://dev.openlayers.org/releases/OpenLayers-2.11/examples/editingtoolbar.html

Spreading de markers proches

https://github.com/jawj/OverlappingMarkerSpiderfier

https://github.com/jawj/OverlappingMarkerSpiderfier-Leaflet

Plugins leaflet en vrac

Consulter cette liste mise à jour sur github.

Markers

Controls

Drawing

Layers

Other