Ich versuche zu lernen, wie man einen Marker auf der Google Map alle x Sekunden bewegt (ohne die Karte oder Seite natürlich zu aktualisieren).Javascript: Google Maps setzen Marker Breite Länge alle x Sekunden?
Ich bin ziemlich viel Code und Tutorials und Fragen über STO über Verschieben oder Aktualisieren von Markern gekommen, aber sie alle wollen es über AJAX tun.
Ich möchte es nicht über AJAX tun.
Grundsätzlich ist die lat/long
des Markers in den so
localstorage();
Die lokale Speicherung sieht ungefähr so aus:
var lat = localStorage.getItem("mylat");
var lng = localStorage.getItem("mylng");
und die Werte von ihnen sind nur einfache Zeichenfolge wie folgt:
51.54647477
0.123383777
Also, wenn ich einen dieser Werte lokal ändern (NEIN AJAX), brauche ich den Marker, um seine Position sozusagen zu bewegen oder zu aktualisieren.
Erstens, ist das überhaupt möglich?
VIELLEICHT, MIT SETINTERVAL()
?!
Wenn ja, könnte jemand bitte hierauf hinweisen oder mich in die richtige Richtung weisen?
Jede Hilfe würde sehr geschätzt werden.
EDIT:
Ich glaube, ich bin immer irgendwo. das Problem ist, dass die Markierung entfernt wird:
Hier ist ein FIDDLE
Wenn ich die lat/long-Werte direkt im Code der Markierung verschwindet nicht verwenden darin bewegt, aber wenn ich den Eingangswert verwenden oder Lokalspeicherwert, verschwindet der Marker.
Works:
var NewLatLng = new google.maps.LatLng(20.371237, 72.90634);
funktioniert nicht:
var NewLatLng = new google.maps.LatLng(input);
Ein weiterer EDIT:
Das funktioniert jetzt, aber es bewegt sich nur die Markierung einmal und es Ich werde es nicht erneut verschieben, wenn ich die Eingabewerte editiere:
http://jsfiddle.net/wduno9su/5/
Dies funktioniert jetzt:
$(document).ready(function() {
var map;
function initialize()
{
var latlng = new google.maps.LatLng(21.16536,72.79387);
var myOptions = {
zoom: 5,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var marker = new google.maps.Marker
(
{
position: new google.maps.LatLng(21.1673643, 72.7851802),
map: map,
title: 'Click me'
}
);
var infowindow = new google.maps.InfoWindow({
content: 'Location info:<br/>SVNIT Post Office, Dumas Rd, Surat<br/>LatLng:<br/>21.1673643, 72.7851802'
});
google.maps.event.addListener(marker, 'click', function()
{
infowindow.open(map, marker);
setTimeout(function(){infowindow.close();}, '5000');
});
//$('#clickme').on('click', function(){
setInterval(function() {
var input = $('#input').val();
var input2 = $('#input2').val();
var NewLatLng = new google.maps.LatLng(input, input2);
//setInterval(function() { marker.setPosition(NewLatLng);}, 2000);
marker.setPosition(NewLatLng);
});
}
window.onload = initialize;
});
Sie haben wieder die Google-Karte auslösen und wieder [überprüfen hier] (http://stackoverflow.com/questions/13059034/how-to-use-google-maps-ereignis-triggermap-resize) – Dherya
@Dherya, was bin ich sup Pose um dort nachzuschauen? – Jackson
Ja, es ist möglich. Bitte geben Sie eine [mcve] an, die zeigt, was Sie versucht haben, was nicht funktioniert hat. – geocodezip