Ich habe die letzten zwei Tage an der Karte gearbeitet, mit ein wenig JS-Code und verschiedenen Fallstricken. Es ist das erste Mal, dass ich mit js in Berührung komme. Hier ist eine Zusammenfassung meiner Recherchen der letzten Tage.
Verwendung von Abschlüssen in Ereignis-Listenern Dies geschieht normalerweise durch Anhängen privater und persistenter Daten an das Objekt. JavaScript unterstützt keine „privaten“ Instanzdaten, unterstützt jedoch Abschlüsse, die es inneren Funktionen ermöglichen, auf äußere Variablen zuzugreifen. In Ereignis-Listenern eignen sich Abschlüsse hervorragend für den Zugriff auf Variablen, die normalerweise nicht mit dem Objekt verbunden sind, auf dem das Ereignis auftritt.
Das folgende Beispiel verwendet einen Funktionsabschluss in einem Ereignis-Listener, um einer Reihe von Tags eine verschlüsselte Nachricht zuzuweisen. Wenn Sie auf jede Markierung klicken, wird ein Teil der verschlüsselten Nachricht angezeigt, der nicht in der Markierung selbst enthalten ist.
var map
function initialize( ) {
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps .MapTypeId.
}
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
/ 5 Markierungen zur Karte hinzufügen zufällige Standorte.
var südwestlich = new google.maps.LatLng(-31.203405,125.244141);
var NorthEast = new google.maps.LatLng(-25.363882,131.044922);
varbounds = new google. maps.LatLngBounds (southWest,northEast);
map.fitBounds(bounds);
var lngSpan = NorthEast.lng();
var latSpan = NorthEast.lat() - SouthWest .lat( );
for (var i = 0; i < 5; i ) {
var location = new google.maps.LatLng(southWest.lat() latSpan * Math.random(),
southWest .lng() lngSpan * Math.random());
var marker = new google.maps.Marker({
position: location,
map: map
}); 🎜>var j = i 1;
marker.setTitle(j.toString());
attachSecretMessage(marker, i);
// Die fünf Markierungen zeigen eine geheime Nachricht an, wenn darauf geklickt wird
//, aber diese Nachricht befindet sich nicht in den Instanzdaten der Markierung
function attachmentSecretMessage(marker, number) {
var message = ["This","is",". the", "secret", "message"];
var infowindow = new google.maps.InfoWindow(
{ content: message[number],
size: new google.maps.Size(50, 50)
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
}
Dieser Code wurde von der offiziellen Google-Website kopiert
Als nächstes möchte ich die Längen-, Breiten- und Adressinformationen aus der Datenbank lesen, sie auf Google Map markieren und auf die Markierung klicken Informationen
Um eine Mehrpunktanmerkung zu erreichen, kann der obige Code auf
Kopieren des Codes
verweisen Der Code lautet wie folgt:
Code kopieren
Der Code lautet wie folgt:
using System;
using System.Collections.Generic
using System.Linq; public int[] id = new int[25]; public string[] addr = new string[25];
protected void Page_Load(object sender, EventArgs e)
{
string mycnnConnectionString1 = System.Configuration.ConfigurationManager.ConnectionStrings["testconect"].ConnectionString; //Verbindungszeichenfolge erstellen
SqlConnection mycnn1 = new SqlConnection(mycnnConnectionString1 );
mycnn1 .Open();
SqlCommand cmd1 = new SqlCommand("select L_ID,L_Lantitude,L_Longitude,L_Address from LatestPosition ", mycnn1);
SqlDataReader dr1 = cmd1.ExecuteReader(); >int k2 = 0;
int k4 = 0;
int k1 = 0;
double buf2 = 0; 🎜>double buf3 = 0 ;
int buf4 = 0;
string buf1 = "0";
while (dr1.Read())
{
//lat
buf2 = (double)dr1[ "L_Longitude"];
la[k2] = buf2
//lng
buf3 = (double)dr1["L_Longitude"];/// Datenbank liest Float-Typ Die Daten müssen double sein
ln[k3] = buf3
//id
buf4 = (int)dr1["L_ID"]; [k4] = buf4;
buf1["L_Address");
addr[k1] = buf1;
mycnn1 .Close();
}
}