J'ai créé un site link text en utilisant l'API produite par Ordnance Survey (je pense que cela s'appelle OpenSpace) qui est basée sur OpenLayers. Je l'ai donc vous pouvez cliquer sur la carte pour ajouter un marqueur et je veux ensuite pouvoir cliquer sur les marqueurs et le faire glisser sur la carte. Existe-t-il un moyen simple de le faire en utilisant l'API OpenSpace ou OpenLayers.Glisser des marqueurs avec Ordnance Survey/Openlayers api
Répondre
L'API OpenLayers vous permet d'ajouter des marqueurs et des fonctionnalités à la carte. Si vous ajoutez des fonctionnalités plutôt que des marqueurs, vous pouvez les faire glisser en ajoutant le code suivant.
var vectorLayer = new OpenLayers.Layer.Vector("Vector Layer");
var osMap = new OpenSpace.Map('map');
osMap.addLayer(vectorLayer);
var modifyFeaturesControl = new OpenLayers.Control.ModifyFeature(vectorLayer);
modifyFeaturesControl.mode = OpenLayers.Control.ModifyFeature.RESHAPE;
osMap.addControl(modifyFeaturesControl);
modifyFeaturesControl.activate();
Ceci vous permettra de faire glisser des entités autour d'une carte. Si vous souhaitez ajouter un comportement personnalisé lorsque vous faites glisser des objets, vous pouvez enregistrer des écouteurs sur vectorLayer. Par exemple, pour enregistrer un écouteur lorsque des fonctions sont modifiées (c'est-à-dire déplacées et relâchées), vous devez utiliser le code suivant.
vectorLayer.events.register('featuremodified', vectorLayer, function(feature) {
//custom behavior
});
Pour une liste complète des événements qui peuvent être écoutées pour voir le OpenLayers api doc OpenLayers api doc
Comme moyen plus facile de le faire est en utilisant la commande de traînée OpenLayer, qui prend une couche vectorielle comme cible.
En supposant une couche vecteur contenant des icônes (ce qui est préféré à des marqueurs, que les développeurs de OL décourageait l'emploi), des vecteurs appelés, vous pouvez simplement faire:
var drag=new OpenLayers.Control.DragFeature(vectors);
map.addControl(drag);
drag.activate();
L'autre avantage d'utiliser le contrôle de traînée est vous pouvez vous connecter à divers rappels, qui renvoient la position de la fonction et du pixel, comme onStart et onDrag. par exemple,
var drag=new OpenLayers.Control.DragFeature(vectors,{
'onDrag':function(feature, pixel){
console.log(pixel.x);//this can be used to do something else, such as move another feature
}
});
Voir http://trac.osgeo.org/openlayers/browser/trunk/openlayers/lib/OpenLayers/Control/DragFeature.js pour plus de détails.
- 1. Utilisation de marqueurs et de polylignes avec google maps api
- 2. API Google Maps: Marqueurs d'accès après la création
- 3. Google Maps Flash API désactive le débordement de MouseEvent sur leurs marqueurs
- 4. Marqueurs d'image sur MKMapView
- 5. Google Maps - Ajouter deux marqueurs (directions)
- 6. Marqueurs cliquables sur GTileLayerOverlay
- 7. Marqueurs d'erreur internes
- 8. Marqueurs dans google maps
- 9. glisser-déposer des options
- 10. marqueurs multiples sur une carte Google Map
- 11. Comment associer des marqueurs Google Maps à d'autres éléments?
- 12. Glisser des données entre instances
- 13. Comment insérer des marqueurs dans un flux vidéo Silverlight LIVE?
- 14. Ajout dynamique d'écouteurs aux marqueurs Google Maps
- 15. Faites glisser et zoomez avec googlemap
- 16. Forum Open Source avec API
- 17. Comment utiliser les dates dans l'axe des X avec Google API API?
- 18. TListBox Problèmes de glisser-déposer avec MultiSelect
- 19. WPF ListBox Glisser-déposer interfère avec ContextMenu?
- 20. Comment appeler API avec PUCHAR?
- 21. Interrogation sur la collection avec des critères Nhibernate Api?
- 22. Comment marquer des éléments lus avec google reader API?
- 23. PHP Flash Charts API avec des dates manquantes?
- 24. Comment imprimer des valeurs aux points avec Google Chart API?
- 25. Comptage des interfaces réseau avec la fonction WSAIoctl (API WIN32)
- 26. Des API amusantes à jouer!
- 27. Glisser des objets hors d'un IFrame
- 28. jQuery faisant glisser des divs texte sélectionné
- 29. des informations sur le glisser & déposer!
- 30. Android API TouchEvents DOM
Je viens d'utiliser le code ci-dessus et cela fonctionne bien en dehors d'un problème: lorsque vous faites glisser/déplacer le marqueur, puis zoom avant ou arrière, ma fonction de vecteur disparaît. Des idées? – nickdos