Προς το περιεχόμενο

ASP.NET + Google Maps + Geocoding


Harkon

Προτεινόμενες αναρτήσεις

Δημοσ.

χαίρεται,

 

προσπαθώ να παίξω με google maps και εμφάνιση pins στον χάρτη έχοντας μόνο τις διευθύνσεις οπότε πάω στην χρήση Geocoding.

να πω την αλήθεια το περίμενα ευκολότερο, μάλλον πιο απλό.

 

ψάχνοντας στο διαδίκτυο δοκίμασα την λύση του http://www.codeproject.com/KB/scrapbook/ask_GoogleMap_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();

Δημοσ.
η sql που κολαει

 

οι διευθύνσεις είναι αποθηκευμένες σε sql server

οπότε η μεταβλητή sql είναι το ερώτημα που φέρνει τις διευθύνσεις αυτές

οι οποίες και μπαινουν στο loop για να πάρω τις συντεταγμένες τους και να προσθέσω το σημείο στον χάρτη.

Δημοσ.

Αυτο ειναι API ή καλυτερα να το πω "ετυμο control" διαβασε αυτα που λεει ο δημιουργος του. Αν ψαξεις , εχει καμια δεκαρια απο δαυτα.

 

Τωρα που το ειδα καλυτερα..

Διαβασε πος δουλεβει το Google map και φτιαξε ενα δικο σου api, με webrequest θα δουλεψεις.

ΥΓ: Εχω φτιαξει ενα api για το flikr.com :D

Δημοσ.

πόσα είναι τα Pins που προσπαθείς να δημιουργήσεις ? Δεν θα μπορούσες μαζί με τις διευθύνσεις να κρατήσεις και τα

GLatLng σε κάποιο πεδίο ώστε να μην τα ζητάς κατα τη δημιουργία του map κάθε φορά ?

Δημοσ.
πόσα είναι τα Pins που προσπαθείς να δημιουργήσεις ? Δεν θα μπορούσες μαζί με τις διευθύνσεις να κρατήσεις και τα

GLatLng σε κάποιο πεδίο ώστε να μην τα ζητάς κατα τη δημιουργία του map κάθε φορά ?

 

καλησπέρα και σε ευχαριστώ για την απάντησή σου, ακόμα παιδεύομαι με δαύτο.

 

είναι αρκετά τα πινς (περίπου 200 αν θεωρούνται πολλά) και έχω μόνο τις διευθύνσεις.

 

ίσως να έχεις και δίκιο και να δοκιμάσω να κάνω μια αρχικοποίηση παίρνοντας τις συντεταγμένες και βάζοντάς τις στην βάση. απλά θα με ενδιέφερε να βρω και συνολικά μια καλή λύση για το geocoding. και πάλι ευχαριστώ

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...