Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Ερωτήσεις και απαντήσεις σχετικές με την HTML, XHTML και την κατασκευή σελίδων για το Web.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από fafos » 09 Ιουν 2009 17:05

Προηγούμενο: Google Maps - 2ο, Δημιουργία χάρτη με πολλαπλά σημεία (xml)


Στα προηγούμενα βοηθήματα μάθαμε πως να φειάχνουμε χάρτες με πολλαπλά σημεία με την βοήθεια της xml.

Το πράγμα αρχίζει να γίνεται επίπονο όταν έχουμε πάρα πολλά σημεία και είμαστε αναγκασμένοι να επεξεργαζόμαστε το αρχείο xml βάζοντας τον ανάλογο κώδικα για κάθε σημείο.

Εδώ θα χρησιμοποιήσουμε την php και την Mysql για να δημιουργούμε δυναμικά το αρχείο xml.

Στο παρακάτω παράδειγμα έχω την δυνατότητα να βάζω πολλαπλά σημεία αλλά και διαφορετικές πόλεις-τοποθεσίες.


Πριν προχωρήσω στην ανάλυση πρέπει να προσέξετε αυτά:

1. Τα αρχεία δεν είναι ασφαλισμένα!! πρέπει να εξασφαλίσετε ότι δεν θα έχουν πρόσβαση τρίτα άτομα (στον φάκελο admin-maps).

2. Μπορείτε να αλλάξετε τα δεδομένα εφόσον γνωρίζετε αρκετά καλά php & mysql. Αν είστε αρχάριοι ρωτήστε πως μπορείτε να προσθέσετε ή να αφαιρέσετε δεδομένα.




ΑΝΑΛΥΣΗ - ΕΓΚΑΤΑΣΤΑΣΗ...


1. Κατεβάστε και αποσυμπιέστε το αρχείο zip που επισυνάπτω.

2. Ανεβάστε τα αρχεία που θα βρείτε στον φάκελο maps στην ιστοσελίδα σας.

3. Ο φάκελος admin-maps πρέπει να ασφαλιστεί έτσι ώστε να έχετε πρόσβαση μόνο εσείς!

4. Δώστε CHMOD 777 στον φάκελο mapimages.

5. Ανοίξτε το PhpMyAdmin και δημιουργήστε μία βάση (π.χ. maps). Μέσα σε αυτήν την βάση εγκαταστείστε τους παρακάτω πίνακες:

Κώδικας: Επιλογή όλων


-- 
-- Δομή Πίνακα για τον Πίνακα `city_info`
-- 

CREATE TABLE `city_info` (
  `id` int(4) unsigned NOT NULL auto_increment,
  `title` varchar(150) collate utf8_unicode_ci NOT NULL,
  `lat` varchar(30) collate utf8_unicode_ci NOT NULL,
  `log` varchar(30) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

-- 
-- Δομή Πίνακα για τον Πίνακα `points`
-- 

CREATE TABLE `points` (
  `id` int(5) unsigned NOT NULL auto_increment,
  `category` varchar(3) collate utf8_unicode_ci NOT NULL,
  `city` varchar(3) collate utf8_unicode_ci NOT NULL,
  `address` varchar(250) collate utf8_unicode_ci NOT NULL,
  `title` varchar(150) collate utf8_unicode_ci NOT NULL,
  `description` text collate utf8_unicode_ci NOT NULL,
  `lat` varchar(30) collate utf8_unicode_ci NOT NULL,
  `log` varchar(30) collate utf8_unicode_ci NOT NULL,
  `thumb` varchar(30) collate utf8_unicode_ci NOT NULL,
  `image` varchar(30) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

-- 
-- Δομή Πίνακα για τον Πίνακα `points_categories`
-- 

CREATE TABLE `points_categories` (
  `id` int(3) unsigned NOT NULL auto_increment,
  `title` varchar(100) collate utf8_unicode_ci NOT NULL,
  `en_title` varchar(100) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
 
6. Ανοίξτε το αρχείο config.php και βάλτε τα στοιχεία που σας ζητάει εκεί μέσα (κωδικούς βάσης, διαστάσεις εικόνων, API κλπ)



Το script είναι έτοιμο. Μπορείτε να μπείτε στην περιοχή διαχείρισης και να δίνετε δεδομένα..

Για αρχή δημιουργείστε τις πόλεις-τοποθεσίες και κατόπιν τις κατηγορίες-τύπους. Στις κατηγορίες-τύπους πρέπει να προσέξετε το πεδίο "Τίτλος στα ΛΑΤΙΝΙΚΑ, ΜΙΑ ΛΕΞΗ, ΧΩΡΙΣ ΚΕΝΑ ΚΑΙ ΕΙΔΙΚΟΥΣ ΧΑΡΑΚΤΗΡΕΣ".

Μετά αρχίστε να βάζετε σημεία για τους χάρτες σας.


Ένα demo live είναι αυτό: http://www.istopoli.com/cruise/map.php?id=1


Μέσα έχω ένα αρχείο test-maps.php στο οποίο μπορείτε να δείτε πως λειτουργεί το script.. για να δείτε τα σημεία μίας πόλης θα πρέπει να δώσετε το id της στην διεύθυνση.. για παράδειγμα αν η Αθήνα έχει id=1 θα πρέπει να γραφτεί έτσι: www.tositesas.gr/test-maps?id=1

Αυτά για την δυναμική δημιουργία xml για χάρτες.


Στο επόμενο βοήθημα θα δούμε διάφορα εργαλεία για να δημιουργούμε δικά μας balloons, να παίρνουμε τις συντεταγμένες μίας διεύθυνσης και άλλα..
Συνημμένα
maps.zip
Αρχεία Maps
(44.87 KiB) Μεταφορτώθηκε 1357 φορές
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Stadem
Δημοσιεύσεις: 198
Εγγραφή: 10 Μαρ 2007 20:45

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από Stadem » 09 Ιουν 2009 18:07

Πολύ καλο, Thanks!
web-IQ Interactive Quality
Εικόνα

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8575
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από Basilakis » 09 Ιουν 2009 18:23

Έρε κάτι παπάδες που θα κάνουμε στο τέλος με τα Maps! :D

Vang
Δημοσιεύσεις: 7
Εγγραφή: 25 Ιαν 2009 21:09
Τοποθεσία: Αθήνα
Επικοινωνία:

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από Vang » 01 Ιούλ 2009 20:35

Πολύ καλό το script. (ευχαριστώ, γιατί μου έδωσε νέες ιδέες)

Όσον αφορά τη βάση και την καταχώρηση στοιχείων σ αυτή, όλα δουλεύουν ο.κ.

Με το test-map.php όμως, θα ήθελα λίγη βοήθεια (ως άσχετος).

1. Κατ αρχήν το ΑPI που έχει μέσα (είναι μάλλον του istopolis) δεν το παίρνει από το config.php οπότε παπαλα χάρτης (ειδικά αν το ανεβάσεις σε δικό σου URL) το πέρασα λοιπόν με το χέρι και κάτι κατάφερα (τουλάχιστον είδα το χάρτη).

Η ερώτηση μου: Δεν μπορεί να "τραβάει" από τη βάση, ανάλογα με τις κατηγορίες που αυτή περιέχει τα αντίστοιχα check boxes και να εμφανίζει όσα εκεί έχουν καταχωρηθεί?

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από fafos » 02 Ιούλ 2009 01:58

Vang έγραψε:Πολύ καλό το script. (ευχαριστώ, γιατί μου έδωσε νέες ιδέες)

Όσον αφορά τη βάση και την καταχώρηση στοιχείων σ αυτή, όλα δουλεύουν ο.κ.

Με το test-map.php όμως, θα ήθελα λίγη βοήθεια (ως άσχετος).

1. Κατ αρχήν το ΑPI που έχει μέσα (είναι μάλλον του istopolis) δεν το παίρνει από το config.php οπότε παπαλα χάρτης (ειδικά αν το ανεβάσεις σε δικό σου URL) το πέρασα λοιπόν με το χέρι και κάτι κατάφερα (τουλάχιστον είδα το χάρτη).

Η ερώτηση μου: Δεν μπορεί να "τραβάει" από τη βάση, ανάλογα με τις κατηγορίες που αυτή περιέχει τα αντίστοιχα check boxes και να εμφανίζει όσα εκεί έχουν καταχωρηθεί?
To test einai apla ena test... gia kathgories klp des ton kodika sto prohgoumeno vohthima: Google Maps - 2ο, Δημιουργία χάρτη με πολλαπλά σημεία (xml)
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

geo87
Δημοσιεύσεις: 79
Εγγραφή: 16 Ιουν 2008 05:25
Τοποθεσία: Αθήνα

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από geo87 » 04 Σεπ 2009 03:29

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

Θα ήθελα να ρωτήσω κάτι και αν μπορείς δώσε μου μια βοήθεια. Έβαλα points και όλα είναι τέλεια. Επειδή στον χάρτη όμως πρέπει να βάλω και Polylines πρέπει να τραβήξω στο test-map.php ένα δεδομένο από το όπως το ονόμασα location που βρίσκεται στον πίνακα points της βάσης δεδομένων. Τον κώδικα που θα βάλω τον έχω βρει και δουλεύει μια χαρά, δεν μπορεί όμως να τραβήξει τα δεδομένα του πίνακα με αποτέλεσμα όταν προσπαθώ να το βάλω να διαβάζει την mysql να μην δείχνει τίποτα. Θα μπορούσες να μου πεις τι θα μπορούσα να κάνω ώστε η php να τραβάει το location καθώς δεν γνωρίζω τις εντολές; Ευχαριστώ πολύ για άλλη μια φορά.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από fafos » 04 Σεπ 2009 12:58

geo87 έγραψε:fafos ευχαριστώ κι εγώ με την σειρά μου. Καταπληκτική δουλειά καθώς προσπαθούσα καιρό να καταφέρω να κάνω κάτι τέτοιο χωρίς επιτυχία. Ευτυχώς που έπεσα πάνω στα βοηθήματα σου.

Θα ήθελα να ρωτήσω κάτι και αν μπορείς δώσε μου μια βοήθεια. Έβαλα points και όλα είναι τέλεια. Επειδή στον χάρτη όμως πρέπει να βάλω και Polylines πρέπει να τραβήξω στο test-map.php ένα δεδομένο από το όπως το ονόμασα location που βρίσκεται στον πίνακα points της βάσης δεδομένων. Τον κώδικα που θα βάλω τον έχω βρει και δουλεύει μια χαρά, δεν μπορεί όμως να τραβήξει τα δεδομένα του πίνακα με αποτέλεσμα όταν προσπαθώ να το βάλω να διαβάζει την mysql να μην δείχνει τίποτα. Θα μπορούσες να μου πεις τι θα μπορούσα να κάνω ώστε η php να τραβάει το location καθώς δεν γνωρίζω τις εντολές; Ευχαριστώ πολύ για άλλη μια φορά.
Pou thes na emfanizei to location? sto markers.php?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

geo87
Δημοσιεύσεις: 79
Εγγραφή: 16 Ιουν 2008 05:25
Τοποθεσία: Αθήνα

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από geo87 » 04 Σεπ 2009 18:57

fafos έγραψε:
Pou thes na emfanizei to location? sto markers.php?
Fafos σε ευχαριστώ πάρα πολύ που ενδιαφερθηκες πραγματικά. Λοιπόν ο κώδικας που πρέπει να προσθέσω είναι ο συγκεκριμένος:

Κώδικας: Επιλογή όλων

var polyline = GPolyline.fromEncoded({  
      color: '#FF0000',  
      weight: 6,  
      opacity: 0.6,  
      points&#58; '<? echo $data&#91;location&#93;;?>', 	  
      levels&#58; 'PMP',  
      numLevels&#58; 18,  
      zoomFactor&#58; 2  
  &#125;&#41;;
Τον συγκεκριμένο πρέπει να τον βάλω στον test-map.php. Με το τμήμα όμως <? echo $data[location];?> καλώ δεδομένα από το τμήμα city_info ενώ θέλω από το τμήμα points ( :cry: ) που από αυτά που κατάλαβα με κάποια μαγκιά τα καλείς μέσω του Markers.php.

Δηλαδή το location βρίσκεται στο points και πρέπει να το καλέσω μέσα από το test-map.php ωστε να εμφανιστούν τα polylines.

Σε ευχαριστώ πολύ και πάλι φίλε μου.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από fafos » 04 Σεπ 2009 20:19

To Markers.php dhmiourgei to xml pou xreiazontai ta points gia na emfanistoun.. kammia sxesh me ta polylines pou thes esy (isos einai ena mellontiko vohthima)..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

geo87
Δημοσιεύσεις: 79
Εγγραφή: 16 Ιουν 2008 05:25
Τοποθεσία: Αθήνα

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από geo87 » 04 Σεπ 2009 21:21

fafos έγραψε:To Markers.php dhmiourgei to xml pou xreiazontai ta points gia na emfanistoun.. kammia sxesh me ta polylines pou thes esy (isos einai ena mellontiko vohthima)..
Ναι σωστά κι έχεις δίκιο σε αυτό. Δεν θέλω να τα επιλέξω μέσω του markers.php ίσως να μην τα είπα κι εγώ σωστά γιατί τα μαθαίνω μόνος ή με την βοήθεια σας. Στο test-map.php γράφει πάνω:

Κώδικας: Επιλογή όλων

	$query = "SELECT * FROM city_info WHERE id='$id'";
	$result = mysql_db_query&#40;$dbname, $query, $conn&#41;;
	$data = mysql_fetch_array&#40;$result&#41;;
Πράγμα που σημαίνει πως καλεί από τον πίνακα city_info δεδομένα αν έχω καταλάβει σωστά πάντα. Έναν παρόμοιο κώδικα για να καλέσω δεδομένα από τον πίνακα points δεν μπορώ να βάλω στο test-map.php; Το μόνο που θέλω είναι να δείξει αυτά που γράφω στο τμήμα location του Points και απλά δεν ξέρω πως να χρησιμοποιήσω τον κώδικα SELECT * FROM. Δεν γίνεται κάτι σε αυτήν την περίπτωση; :oops:

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από fafos » 04 Σεπ 2009 21:35

Κώδικας: Επιλογή όλων

 $query = "SELECT location FROM points WHERE city='$id'"; 

an thes mono to location apo ton pinaka points...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

neos
Δημοσιεύσεις: 2
Εγγραφή: 05 Σεπ 2009 13:45

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από neos » 05 Σεπ 2009 14:45

fafos έγραψε:Μέσα έχω ένα αρχείο test-maps.php στο οποίο μπορείτε να δείτε πως λειτουργεί το script.. για να δείτε τα σημεία μίας πόλης θα πρέπει να δώσετε το id της στην διεύθυνση.. για παράδειγμα αν η Αθήνα έχει id=1 θα πρέπει να γραφτεί έτσι: www.tositesas.gr/test-maps?id=1
Γεια χαρά..

Θα προσπαθήσω να περιορίσω τον πρόλογό μου λέγοντας απλά πως τα βοηθήματά σου για τα Google Maps τα βρήκα απλά Ε Ξ Α Ι Ρ Ε Τ Ι Κ Α..! Με κάναν και διάβασα-έμαθα πάρα πολλά πράγματα ελαττώνοντας κάπως την ασχετοσύνη μου με το αντικείμενο...

Ας περάσω όμως κατευθείαν στο ζουμί..

1) Έχω στήσει στο pc μου AppServ για να μπορέσω να δουλέψω.. To θέμα είναι ότι το site.php?id=1 το βλέπω μόνο εγώ.. Οποιοσδήποτε μπει από την εξωτερική IP μου φτάνει μέχρι το επίπεδο site.php.. Τι μπορεί να φταίει; Εδώ να πω επίσης πως
fafos έγραψε:1. Τα αρχεία δεν είναι ασφαλισμένα!! πρέπει να εξασφαλίσετε ότι δεν θα έχουν πρόσβαση τρίτα άτομα (στον φάκελο admin-maps).
δεν έχω ιδέα για το πως γίνεται :P αλλά δεν ξέρω αν παίζει αυτό ρόλο...

2) Στην φόρμα για προσθήκη σημείου, αν δεν μπει κάποια photo, το σημείο δεν προστίθεται... θα μπορούσε να αλλάξει αυτό; Να υπάρχουν δηλαδή σημεία, με όχι τέτοιο ενδιαφέρον, έτσι ώστε ο τίτλος και η διεύθυνση να αρκούν..

3) Σε συνέχεια του παραπάνω θα με ενδιέφερε πολύ να υποστηρίζεται πέρα από τις εικόνες (jpg, png, gif) και το swf (flash) μιας και κάτι τέτοιο θα "άνοιγε το δρόμο" σε video, slide-shows κτλ.. έχω καταφέρει να εμφανίσω flash σε InfoWindow αλλά δεν έχω ιδέα πως θα μπορώ να το κάνω αυτό δυναμικά (όπως γίνεται με την εικόνα).

Ελπίζω να μην σας κούρασα πολύ.. ευχαριστώ πολύ παιδιά για το χρόνο σας και ιδιαίτερα τον fafos για τα βοηθήματα και την υποστήριξη!

geo87
Δημοσιεύσεις: 79
Εγγραφή: 16 Ιουν 2008 05:25
Τοποθεσία: Αθήνα

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από geo87 » 05 Σεπ 2009 18:25

Λοιπόν fafos είσαι αρχηγός! Σε ευχαριστώ πάρα πάρα πολύ πραγματικά. Το έφτιαξα και όλα είναι οκ! :D Συνέχισε τους υπέροχους οδηγούς διότι όσοι δεν γνωρίζουμε καλά αγγλικά στηριζόμαστε σε εξαιρετικά άτομα σαν κι εσένα για να μάθουμε κάτι παραπάνω και να καταφέρουμε να φτιάξουμε τα όσα θέλουμε. Και πάλι χίλια ευχαριστώ. Θα περιμένω με ανυπομονησία και τα υπόλοιπα Tutorial σου.

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από Banavas » 08 Σεπ 2009 09:13

Εννοείτε οτι το βοήθημα είναι κορυφαίο! και υψηλού επιπέδου που σπάνια βρίσκεις δωρεάν στο internet.
Fafos you are the best!

Η απορία μου είναι αν η google θα συνεχίσει να παρέχει την υπηρεσία δωρεάν ή περιμένει να μπει για τα καλά στα site και μετά να την κάνει συνδρομητική;
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Google Maps - 2ο-B, Δημιουργία xml με php & mysql

Δημοσίευση από fafos » 08 Σεπ 2009 15:31

Banavas έγραψε:Εννοείτε οτι το βοήθημα είναι κορυφαίο! και υψηλού επιπέδου που σπάνια βρίσκεις δωρεάν στο internet.
Fafos you are the best!

Η απορία μου είναι αν η google θα συνεχίσει να παρέχει την υπηρεσία δωρεάν ή περιμένει να μπει για τα καλά στα site και μετά να την κάνει συνδρομητική;
Thanks Markos,

den pisteuo oti tha peiraksei tous xartes.. alles yphresies na fovomaste (p.x. youtube)... isa isa pou to neo API ton maps einai pio eleuthero (den xreiazetai to key) kai me perissoteres dynatothtes (opos akougetai).. alla milame gia Amerikanikes epixeirhseis opote kalo einai na kratame kai mia pisinh :D
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

Επιστροφή στο “HTML και XHTML”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες