χαίρεται,
προσπαθώ να παίξω με google maps και εμφάνιση pins στον χάρτη έχοντας μόνο τις διευθύνσεις οπότε πάω στην χρήση Geocoding.
να πω την αλήθεια το περίμενα ευκολότερο, μάλλον πιο απλό.
ψάχνοντας στο διαδίκτυο δοκίμασα την λύση του
http://www.codeproject.com/KB/scrapb..._Geocoder.aspx
χρησιμοποιώντας τις βιβλιοθήκες αυτές κατάφερα να το κάνω να δουλέψει
αλλά το μεγάλο μου πρόβλημα είναι πως είναι υπερβολικά αργό!
έχω ένα dropdown list που επιλέγει την κατηγορία σημείων προς εμφάνιση
και κάνει υπερβολικά πολύ να ενημερώσει. Ο κώδικας είναι παρακάτω.
Υπάρχει κάτι πιο γρήγορο γενικά ή αν βλέπετε κάποιο λάθος/βελτίωση θα
σας ήμουν υπόχρεως.
ευχαριστώ.
SqlConnection MyConnection = new SqlConnection(@"Data Source=..; Initial Catalog = ..; Integrated Security=true");
MyConnection.Open();
string sql;
SqlCommand MyCommand = new SqlCommand(sql, MyConnection);
SqlDataReader MyDataReader = MyCommand.ExecuteReader(CommandBehavior.CloseConnection);
GoogleMapForASPNet1.GoogleMapObject.Points.Clear();
while (MyDataReader.Read())
{
string xml = GMapGeocoder.Util.GetXml(MyDataReader[2].ToString() + ", 41500", ConfigurationManager.AppSettings["GoogleAPIKey"]);
GMapGeocoder.Generated.kml kml = GMapGeocoder.Util.DeserializeXml(xml);
if (kml.Response.Placemark != null)
{
string lan = kml.Response.Placemark[0].Point.coordinates;
string fullAddress = kml.Response.Placemark[0].address;
string countryCode = kml.Response.Placemark[0].AddressDetails.Country.CountryNameCode;
string stateCode = kml.Response.Placemark[0].AddressDetails.Country.
AdministrativeArea.AdministrativeAreaName;
string[] tmp = lan.Split(',');
GooglePoint GP = new GooglePoint();
GP.ID = myId; //dilomeno parapanw
GP.Latitude = Convert.ToDouble(tmp[1].Replace('.', ','));
GP.Longitude = Convert.ToDouble(tmp[0].Replace('.', ','));
GP.InfoHTML = "This is point " + myId;
GoogleMapForASPNet1.GoogleMapObject.Points.Add(GP);
}//end if
}//end while
MyConnection.Close();