Je travaille sur la map depuis deux jours, avec un peu de code js et divers pièges. C'est la première fois que j'entre en contact avec js. C'est toutes sortes de difficultés. Voici un résumé de mes recherches de ces derniers jours. Recherche de pièges
Utilisation des fermetures dans les auditeurs d'événements
Lors de l'exécution des auditeurs d'événements. , c'est généralement conseillé en attachant des données privées et persistantes à l'objet. JavaScript ne prend pas en charge les données d'instance « privées », mais prend en charge les fermetures qui permettent aux fonctions internes d'accéder aux variables externes. Dans les écouteurs d'événements, les fermetures sont idéales pour accéder à des variables qui ne sont normalement pas attachées à l'objet sur lequel l'événement se produit.
L'exemple suivant utilise une fonction de fermeture dans un écouteur d'événement pour attribuer un message chiffré à un ensemble de balises. Cliquer sur chaque marqueur révélera une partie du message crypté qui n'est pas contenue dans le marqueur lui-même.
var map
function initialize( ) {
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
zoom : 4,
center : myLatlng,
mapTypeId : google.maps .MapTypeId. ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);// Ajouter 5 marqueurs à la carte à emplacements aléatoires.
var sud-ouest = new google.maps.LatLng(-31.203405,125.244141);
var northEast = new google.maps.LatLng(-25.363882,131.044922); maps.LatLngBounds (southWest,northEast);
map.fitBounds(bounds);
var lngSpan = northEast.lng() - southWest.lng(); .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 : emplacement,
carte : carte
}); 🎜>var j = i 1;
marker.setTitle(j.toString());
attachSecretMessage(marker, i);
}
}
// Les cinq les marqueurs affichent un message secret lorsque vous cliquez dessus
// mais ce message ne fait pas partie des données d'instance du marqueur
function attachSecretMessage(marker, number) {
var message = ["This","is",". le", "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);
}); }
Ce code est copié du site officiel de Google
Ensuite, je souhaite lire les informations de longitude, de latitude et d'adresse dans la base de données, le marquer sur Google Map et cliquer sur la marque pour apparaître. Informations
Pour réaliser une annotation multipoint, le code ci-dessus peut faire référence à
Copier le code
Le code est le suivant :
code backend cs :
Copier le code
Le code est le suivant :
en utilisant System.Web.UI.HtmlControls ; .Data.SqlClient;
public partial class Default2 : System.Web.UI.Page
{
public double[] la = new double[25]; [25];
public int[] id = new int[25];
public string[] addr = new string[25];
protected void Page_Load (expéditeur d'objet, EventArgs e)
{
string mycnnConnectionString1 = System.Configuration.ConfigurationManager.ConnectionStrings["testconect"].ConnectionString; //Créer une chaîne de connexion
SqlConnection mycnn1 = new SqlConnection(mycnnConnectionString1 );
mycnn1 .Open();
SqlCommand cmd1 = new SqlCommand("select L_ID,L_Lantitude,L_Longitude,L_Address from LatestPosition ",
SqlDataReader dr1 = cmd1.ExecuteReader(); >int k2 = 0;
int k3 = 0;
int k4 = 0;
int k1 = 0;
// chaîne buf1 = ""; 🎜>double buf3 = 0 ;
int buf4 = 0;
string buf1 = "0";
while (dr1.Read())
{
//lat
buf2 = (double)dr1[ "L_Lantitude"];
la[k2] =
k2
//lng
buf3 = (double)dr1["L_Longitude"];/// La base de données lit le type float Les données doivent être doubles
ln[k3] =
k3
//id
buf4 = (int)dr1["L_ID"]; [k4] = buf4;
k4;
buf1 = dr1["L_Address"].ToString();
addr[k1] =
dr1.Close(); .Fermer();
}
}