Todo
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 |
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
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 :
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
- googlev2 : http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/1.0/docs/reference.html
- googlev3 : http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/docs/reference.html ou http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.9/docs/reference.html
- leaflet : https://github.com/ideak/leafclusterer et d’autres ici https://github.com/CloudMade/Leaflet/issues/442
- cloudmade : http://developers.cloudmade.com/projects/web-maps-api/examples/marker-clustering
- Microsoft Bing : http://rtsinani.github.com/PinClusterer/
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
- Many diffrent marker clusterer referenced on https://github.com/CloudMade/Leaflet/issues/442
- Deals with overlapping markers in the Leaflet maps API, Google Earth-style https://github.com/jawj/OverlappingMarkerSpiderfier-Leaflet
Controls
- A simple panning control for Leaflet. https://github.com/kartena/Leaflet.Pancontrol
- A zoom slider widget for leaflet https://github.com/kartena/Leaflet.zoomslider
- Another zoombar more usable (not yet available as a plugin) https://github.com/CloudMade/Leaflet/pull/689
- An extension of the default Leaflet zoom control to include a fullscreen button. https://github.com/elidupuis/leaflet.zoomfs
- Simple plugin for Leaflet that adds fullscreen button to your maps https://github.com/brunob/leaflet.fullscreen
Drawing
- Drawing handler and control for Leaflet https://github.com/brunob/leaflet.draw
- @jacobtoye fork with different approach https://github.com/jacobtoye/Leaflet.draw
- Tools that help to edit shapes. For instance a circle https://github.com/kartena/Leaflet.EditableHandlers
Layers
- TileJSON support for Leaflet https://github.com/perliedman/leaflet-tilejson
Other
- A pack of plugins for vectors overlays and providers https://github.com/shramov/leaflet-plugins
- Great circle routes in javascript https://github.com/springmeyer/arc.js