2016-11-02 7 views
0

Ich hatte ein Problem gestern mit einem location picker die here gelöst wurdejQuery Locationpicker setzen mehrere Standorte

Dies funktioniert für zwei von drei Fällen aber für das letzte kann ich nicht herausfinden, wie man es an die Arbeit.

Um meine vorherige Frage zusammenzufassen: Ich habe einen Locationpicker, aus dem ich bestimmte Werte nach der Initialisierung extrahieren muss. Um dies zu erreichen, benutze ich diesen Code, die Funktion setLocation ist meine eigene und funktioniert wie vorgesehen.

$("#locationpicker").locationpicker({ 
    location: {latitude: 10, longitude: 10}, 
    radius: 10, 
    inputBinding: 
    { 
     latitudeInput: $("#locationpicker_lat"), 
     longitudeInput: $("#locationpicker_lon"), 
     radiusInput: $("#locationpicker_radius"), 
     locationNameInput: $("#locationpicker_address") 
    }, 
    oninitialized: function(component){ 
     setLocation("end"); 

     //1. attempt 
     component.location = {latitude: 20, longitude: 20}; 

     //2. attempt 
     var mapContext = component.locationpicker("map"); 
     mapContext.map.radius = 500; 

     //3. attempt - I work, but then setLocation below not any more 
     component.locationpicker("location", {latitude:10.0, longitude:10.0}); 

     setLocation("start"); 
    }, 
    enableAutocomplete: true 
}); 

Ich rufe die Funktion setLocation() zweimal, sondern müssen die Lage zwischen ihnen wechseln. Ich konnte in der Dokumentation des locationpickers nicht finden, wie man eine neue Position (Breite, Länge, Radius) einstellt und verschiedene Versuche sind auch gescheitert. Zwei davon können im Code angezeigt werden.

Ich dachte über die Verwendung der ursprünglichen google maps API aber habe keine Ahnung, ob das funktioniert und wie genau es zu verwenden ist.

Ich hoffe, ich habe mein Problem ausführlich genug beschrieben und wenn irgendeine Information fehlt, werde ich es sofort zur Verfügung stellen. Ich muß, aber dann wird die Extraktion für den zweiten Satz von Variablen korrigiert nicht mehr

UPDATE 1

ich in der Lage bin den Standort auf einen Wert zu ändern.

Diese in der oninitilaized Funktion arbeitet

component.locationpicker("location", {latitude:10.0, longitude:10.0}); 

Da die Funktion setLocation nicht auf dem aktuellen Stand funktioniert ich es hier posten auch:

function setLocation(option) 
{ 
    var lat = $("#locationpicker_lat").val(); 
    var lon = $("#locationpicker_lon").val(); 
    var add = $("#locationpicker_address").val(); 
    var rad = $("#locationpicker_radius").val(); 

    if(rad == "") 
    { 
     rad = 0; 
    } 

    if(option == "start") 
    { 
     document.getElementById("start_location_lat").value = lat; 
     document.getElementById("start_location_lon").value = lon; 
     document.getElementById("start_location_rad").value = rad; 

     document.getElementById("display_start_location").innerHTML = add + ", Radius: " + rad + "m"; 
    } 
    else 
    { 
     document.getElementById("end_location_lat").value = lat; 
     document.getElementById("end_location_lon").value = lon; 
     document.getElementById("end_location_rad").value = rad; 

     document.getElementById("display_end_location").innerHTML = add + ", Radius: " + rad + "m"; 
    } 
} 

Antwort

1

Versuchen Sie, einen separaten Hörer für den Start zu schaffen und Endstandort. Auf diese Weise können Sie Ihre App einfacher debuggen und leichter verstehen.

Beispielcode

<div id="start" style="width: 500px; height: 400px;"></div> 
<div id="end" style="width: 500px; height: 400px;"></div> 

<script> 

function setLocation_start(){ 
//your code for start 
$('#start').locationpicker(); 
} 

function setLocation_end(){ 
//your code for end 
$('#end').locationpicker(); 
} 

</script> 

Das Bild ist ein Beispiel für einen separaten Hörer für Start- und Endpunkt.

enter image description here

+0

Das Problem ist nicht mehr relevant, aber ich schätze Ihre Mühe. Trotzdem danke. – JRsz

Verwandte Themen