RSform PRO : Google map field = modifier MAPCENTER / MODIFIER JAVASCRIPT A LA VOLEE

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Suggestion] RSform PRO : Google map field = modifier MAPCENTER / MODIFIER JAVASCRIPT A LA VOLEE

    Bonjour!
    J'utilise Joomla3 avec RSformPRO pour mes formulaires, le seul hic étant que ce composant ne permet qu'un seul et unique positionnement initial de la carte malgré la possibilité de le faire sur les coordonnées.
    En clair, voici un exemple concret : https://www.astracontrol.com/TESTFORM3MAPCENTER , le positionnement de la carte est sur Paris alors que les coordonnées en dessous ont été fournies par un code PHP pointant sur Montpellier, assez déroutant pour un utilisateur!

    J'ai donc demandé cette possibilité à l'éditeur mais il ne réalise pas de code à la demande mais m'indique :
    You can control the center, marker of the Google map with the help of the `rsformmapxxx`, `rsformmarkerxxx` variables. You can retrieve the actual variable names by inspecting the source code of your form page, the `xxx` syntax needs to be replaced with the actual component id.
    You could try using a custom Javascript that uses these variables in order to control the center and marker of the generated Google map, this needs to be triggered when the page is loaded.
    Une zone dans RSformPRO permet l'appel à du javascript, c'est ici qu'il faut que j’insère un script permettant de piquer le center: new google.maps.LatLng(48.858221,2.294446), pour le transformer selon un script PHP en 42.858221,2.294446 par exemple. J'en profiterais pour changer le type google.maps.MapTypeId.ROADMAP, en HYBRID.

    Voici le script d'appel de la carte :
    Code HTML:
    <script type="text/javascript">
    var rsformmap3102; var geocoder; var rsformmarker3102;
    function rsfp_initialize_map3102() {
    	geocoder = new google.maps.Geocoder();
    	var rsformmapDiv3102 = document.getElementById('rsform-map3102');
    	rsformmap3102 = new google.maps.Map(rsformmapDiv3102, {
    		center: new google.maps.LatLng(48.858221,2.294446),
    		zoom: 18,
    		mapTypeId: google.maps.MapTypeId.ROADMAP,
    		streetViewControl: false
    	});
    
    	rsformmarker3102 = new google.maps.Marker({
    		map: rsformmap3102,
    		position: new google.maps.LatLng(42.858221,2.294446),
    		draggable: true
    	});
    
    	google.maps.event.addListener(rsformmarker3102, 'drag', function() {
    		geocoder.geocode({'latLng': rsformmarker3102.getPosition()}, function(results, status) {
    			if (status == google.maps.GeocoderStatus.OK) {
    				if (results[0]) {
    					document.getElementById('formgps').value = rsformmarker3102.getPosition().toUrlValue();
    				}
    			}
    		});
    	});
    }
    google.maps.event.addDomListener(window, 'load', rsfp_initialize_map3102);
    
    rsfp_addEvent(document.getElementById('formgps'),'keyup', function() { 
    	rsfp_geolocation(this.value,3102,'formgps',rsformmap3102,rsformmarker3102,geocoder, 0);
    });
    
    </script>
    Avez vous une idée de comment faire cela?

    Grand merci et bonne journée / année à tous!

    Bye

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X