कुछ सप्ताह? मैं गूगल मैप्स के साथ एकीकरण के बारे में हब पर वापस पढ़ता हूं। दुर्भाग्य से मुझे लिंक नहीं मिला, लेकिन लेख में बिंदु उस शहर की साइट के बारे में था जहां उपयोगकर्ता ऑब्जेक्ट्स को मानचित्र पर जोड़ सकते थे। यह विचार बहुत सेक्सी लग रहा था, लेकिन टिप्पणियों में लेखक ने स्वीकार किया कि उसने यह कार्यक्षमता कई महीनों के लिए लिखी है (
इस तथ्य ने मुझे गंभीर निराशा में डाल दिया (
इस तरह से gmaps के साथ एकीकृत सुंदर वेबसाइटों पर लिपियों का विश्लेषण
डोम ने प्रभावशाली किलोमीटर का कोड दिखाया ... और इसलिए मैं तब तक उदास रहूंगा जब तक मैं गलती से
Google की मदद से साइट में नहीं भटक गया।
और जैसा कि यह पता चला - इस कार्य के समय और दायरे के बारे में सभी जानकारी कम से कम तोड़फोड़ और उकसावे की है! इसलिए, हम
Google मानचित्र सेवा के आधार पर एक उपयोगकर्ता मानचित्र बना रहे हैं
कुछ इस तरह:

उफ्फ, चलो कोशिश करते हैं।
सही प्रोग्रामर हमेशा केस स्टडी के साथ प्रलेखन का अध्ययन करना शुरू करते हैं। दुर्भाग्य से, मैं आमतौर पर इस स्तर पर समाप्त होता हूं) जैसा कि यह हो सकता है, उदाहरण
भरे हुए हैंऔर वे बहुत अच्छे हैं। ओह, ये कुछ अन्य उदाहरण हैं, ठीक है, उन्हें होने दो, लेकिन सामान्य तौर पर मैंने इससे
सीखा ।
इसलिए, एक आदिम उपयोगकर्ता नक्शा तैयार करने के लिए, हमें चाहिए:
- एक टेबल
- 1-2 html
- पीएचपी की एक जोड़ी
- स्क्रिप्ट की एक जोड़ी
-
मैप्स एपीआई कुंजीएक सिर और कम से कम एक उंगली। कुल 3-4 कोड स्क्रीन हमारे लिए काम करेंगे।
चूंकि हेरा स्रोत वाक्यविन्यास को उजागर करने के लिए अनुकूल नहीं है, इसलिए मैं उन्हें लिंक दूंगा और यहां संक्षेप में बताऊंगा कि वहां क्या है।
हमें एक तालिका चाहिए:
CREATE TABLE `prefix_markers` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(180) default NULL,
`hello` varchar(180) default NULL,
`lat` float(10,6) NOT NULL default '0.000000',
`lng` float(10,6) NOT NULL default '0.000000',
`sex` varchar(4) NOT NULL default '',
`login` varchar(32) NOT NULL default '',
PRIMARY KEY (`id`)
)
अब नोटों में भरना जरूरी है। ऐसा करने के लिए, हमें एक html की आवश्यकता होती है जहाँ हम एक नक्शा दिखाते हैं, html में लिखते हैं, हेडर क्षेत्र में कुछ इस तरह से होता है:
<? $loadmaps = "" ?>
<? if (strstr($_SERVER["REQUEST_URI"],'maps')) {?>
<script src="http://maps.google.com/maps?file=api&v=2.x&key= API"
type="text/javascript">
<? if (strstr ($ _ SERVER ["REQUEST_URI"], 'add')) {>!
<? $ loadmaps = "onload = 'initialize ()' onunload = 'GUnload ()'>>>
<?}?>
<? if (strstr ($ _ SERVER ["REQUEST_URI"], 'शो')) {>!
<? $ loadmaps = "ओनलोड = 'लोड ()' ऑनऑनलोड = 'GUnload ()'"?>
<?}?>
<?}?>
क्षमा करें, लेकिन अगर वहाँ सब कुछ बदसूरत स्वरूपित है, तो यह मेरी गलती नहीं है)
वहां, url के आधार पर, लोडमैप्स चर भरा जाता है
जो तब यहां प्रदर्शित किया गया है:
<body <?=$loadmaps?>
इस तरह की विकृति - क्योंकि मेरे पास एक साइट हैडर है, लेकिन मुझे जो कुछ भी चाहिए, उसके आधार पर - नक्शे में "शो" या "जोड़ें" - विभिन्न स्क्रिप्ट जुड़े हुए हैं। मैं वादा करता हूं कि यह आगे आसान होगा। मुझे लगता है कि)
तदनुसार, HTML के शरीर के अंदर जो नक्शे पर प्रदर्शित करने के लिए जिम्मेदार है, हम लिखते हैं:
और जो जोड़ के लिए है:
/>
/>
Uhhh, html को हल किया। अब हमारे पास खाली नक्शे के साथ 2 HTML टैग हैं। यह लोगों को जोड़ने के लिए पहले पर रहता है, और दूसरे पर - मैपर)
स्क्रिप्ट जोड़ें -
यहाँ यह है, खलनायकवहां सब कुछ साफ होता दिख रहा है। इनिशियलाइज़ में - एक मार्कर बनाया जाता है, जब क्लिक किया जाता है, तो जिन क्षेत्रों में हम "प्रीव" दर्ज करते हैं, वे प्रदर्शित होते हैं
ShowAddress में - एक कार्ड उपयोगकर्ता द्वारा दर्ज पते पर केंद्रित करने के साथ प्रदर्शित किया जाता है
SaveData में, डेटा को ajax के माध्यम से url के साथ कॉल करके सहेजा जाता है
new Ajax(urlinsert, {method: "post"}).request();
यह
म्यूटूलस लाइब्रेरी सिंटैक्स है, इसे हैडर में भी जोड़ा जाना चाहिए जैसा कि यह है)
और, अभी भी, हर जगह एस्केप फ़ंक्शन का उपयोग किया जाता है, यह एक गलत फ़ंक्शन है, क्योंकि मेरी साइट भी गलत है। गलत कोड पृष्ठ 1251 में। आपको इसकी आवश्यकता नहीं है। शायद। किसी भी मामले में, हब पर टिप्पणियों को देखते हुए, इंटरनेट पर कोई भी गलत साइट नहीं है, सब कुछ केवल सही यूटीएफ -8 में है। खैर, हब्र के अपवाद और साइटों के एक जोड़े के साथ।
टैक्स, इसका मतलब है कि यह स्क्रिप्ट हमारे अंदर इन्सर्ट। Php फाइल कहती है। वहां सब कुछ उबाऊ है, सामान्य तौर पर यह टिन में है, यह सिर्फ रिकॉर्ड डाला जाता है:
// Selects rows in the markers table 4 current user
$query = "SELECT id FROM prefix_markers WHERE login='".$login."'";
$result = mysql_query($query);
$row = @mysql_fetch_assoc($result);
//$hello = mb_convert_encoding($hello,"Windows-1251","UTF-8");
if ($row['id']>0){
//update row with user data
$query = "UPDATE prefix_markers SET " .
" name='".urldecode($name)."', hello='".$hello."', lat='".$lat."', lng='".$lng."', sex='".$sex."' ".
"WHERE id = '".$row['id']."'";
$result = mysql_query($query);
$res = $row["id"];
}else{
// Insert new row with user data
$query = "INSERT INTO prefix_markers " .
" (id, name, hello, lat, lng, sex, login ) " .
" VALUES (NULL, '".$name."', '".$hello."', '".$lat."', '".$lng."', '".$sex."', '".$login."')";
$result = mysql_query($query);
$res = "Insert";
}
बोरियत ...
लेकिन अनुरोध पूरा होने के बाद, हम तुरंत show.php खोलते हैं
newurl = currurl.substring(0,currurl.length-4 ) + "/show";
..
new Ajax(urlinsert, {method: "post"}).request();
self.location.href=newurl;
यहाँ। लेकिन यह खाली है) यह मूर्खता से html शो खोलता है
$template = "themes/".$config['theme']."/templates/".$config['templates']['user_maps_show'];
viewTemplate($template);
कयामत। अब
शो की स्क्रिप्ट दृश्य में प्रवेश करती है
वहां सब कुछ स्पष्ट है। एक नीला (नीला नहीं!) चिह्न लड़कों के लिए बनाया गया है, लड़कियों के लिए लाल, मार्कर और ऊब पैदा किए गए हैं। एकमात्र संदिग्ध बिंदु कॉल urlxml = basurl + "/ user / map_xml.php" है;
यहाँ यह है:
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
$query="SELECT *, (SELECT id FROM prefix_user as usr WHERE usr.login = markers.login) AS usrid FROM prefix_markers as markers";
$result = mysql_query($query);
//$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
//header("Content-type: text/xml");
// Start XML file, echo parent node
echo '';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name="' . parseToXML($row['name']) . '" ';
echo 'hello="' . $row['hello'] . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo 'sex="' . $row['sex'] . '" ';
echo 'login="' . $row['login'] . '" ';
echo 'usrid="' . $row['usrid'] . '" ';
echo '/>';
}
// End XML file
echo '';
exit();
हुर्रे !!! (लिखने के लिए अत्याचार) ओह हाँ। मन में - यह एक स्टेटिक फाइल होनी चाहिए, न कि कैट स्क्रिप्ट। डेटाबेस से xml में मक्खी पर उतारता है ...
Vooot। सामान्य तौर पर, यह सब केवल एक साथ लाए गए Google उदाहरणों से कोड के टुकड़े हैं। निश्चित रूप से आप अन्य टुकड़ों के साथ एक अलग क्रम में उन्हें कम कर सकते हैं और पूरी तरह से अलग परिणाम प्राप्त कर सकते हैं) बहुत बेहतर - 100%
आप देख सकते हैं कि इन सभी नृत्यों के बाद क्या होना चाहिए
(यहाँ पर सावधानी से साइट में कामुक सामग्री है)नक्शा बटन। पंजीकरण के बिना, यह काम नहीं करेगा क्योंकि ... - हाँ, आपने स्वयं ही सभी स्रोतों को देखा है) इसलिए यह काम नहीं करता है)
पुनश्च: किसी तरह का डरावना लेख निकला। शैली और पहुँच दोनों। एक आशा है कि शायद कोई मदद करेगा) अगर सब कुछ पूरी तरह से खराब और समझ से बाहर है - टिप्पणियों में पीएलज़ लिखिए जिसे मैं अंतिम रूप देने की कोशिश करूंगा।