إضافة بحث عن طريق الرمز البريدي في خريطة جوجل مخصصة

StackOverflow https://stackoverflow.com/questions/1101063

  •  11-09-2019
  •  | 
  •  

سؤال

أولا أود أن أقول إنني جديد على هذا الموقع، لم يعمل أبدا مع API خرائط Google ولديه معرفة وسيطة عن JavaScript.

ما الذي فعلته:أنا وضعت معا "محدد موقع متجر" من خلال إضافة مواقع إلى جوجل "خرائطي". ثم قمت بإنشاء صفحة ويب مع قائمة المنسدلة واعتمادا على الموقع الذي تحدده من القائمة المنسدلة، فإنه يغير SRC ل IFRAME الذي يحمل الخريطة. لذلك عندما يتم تحميل الصفحة، فإنك ترى خريطة نطاق أكبر واختيار مواقع محددة، وسوف يغير الخريطة إلى هذا الموقع المحدد (التكبير والمحصول).

ما أحتاج لفعله:ما أحتاج إليه الآن لإكمال هذه الخريطة هو إضافة "البحث عن طريق الرمز البريدي" الذي سيسمح للمستخدم بوضعه في الرمز البريدي ولديه صفحة الويب إرجاع قائمة بأقرب المواقع ونأمل مسافاتهم.

هل لدى أي شخص فكرة إذا كنت سأكون قادرا على إضافة وظيفة "البحث عن طريق الرمز البريدي" إلى خريطة Google المخصصة؟

ليس هناك بالفعل الكثير من التعليمات البرمجية للنشر، ولكن إذا كان سيساعد، سأفعل ذلك بكل سرور. تعمل الوظيفة الحالية على خريطتي رائعة، المشكلة هي أنني لا أعرف من أين أبدأ بإضافة البحث الرمز البريدي.

هنا رابط إلى الصفحة التي أشير إليها: http://74.53.82.155/store-locator.htm.

أي مساعدة موضع تقدير.

شكرا مقدما، gnrlchaos

هل كانت مفيدة؟

المحلول

خيار واحد هو استخدام خدمة الويب الخاصة ب Geonames التي إرجاع المواقع من الرموز البريدية. وبعد إليك مثال سريع على كيفية استخدام خدمة الويب هذه مع Dojo.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title></title>
        <link rel="stylesheet" type="text/css" href="layout.css">
        <script type="text/javascript">var djConfig = { parseOnLoad: true }</script>
        <script type="text/javascript" src="../dojo-release-1.3.0/dojo/dojo.js"></script>
        </script>
        <script type="text/javascript">
            dojo.require("dojo.io.script");
                function getPlace() {
        var zip = dojo.byId('zipcode').value;
        console.log('zip is ', zip);
        //use country code to get results for a specific country
        //var gn_url = 'http://ws.geonames.org/postalCodeLookupJSON?postalcode=' + zip + '&country=US';
        var gn_url = 'http://ws.geonames.org/postalCodeLookupJSON?postalcode=' + zip;
        console.log(gn_url);
        dojo.io.script.get({
          url: gn_url, 
          callbackParamName: "callback",
          load:function(response, io) { 
            console.log('got json.'); 
            console.dir(response); 
            places = response.postalcodes; 
            var infos = []
            dojo.forEach(places, function(p, i) {
                infos[i] = p.placeName + ', ' + p.adminName1 + ', Lat: ' + p.lat + '; Long: ' + p.lng + '<br />';
            });
                dojo.byId('postalCode').innerHTML = infos.join('');
          }, 
          error:errorCb
        });   
        }

        function errorCb(type, data, evt){
                debug(data);
        }
         </script>
     </head>
     <body class="tundra">
    Enter a zip code: <input id="zipcode" type="text" /> <button onclick="getPlace(); return false;" value="Find Place.">Find Place.</button>
      <div>Places:</div><div id="postalCode"></div>
    </body>
</html>

نصائح أخرى

لا أعرف أي طريقة للتفاعل مع خريطة جوجل مضمنة في الطريقة التي تريدها. الخيار الأفضل هو إنشاء خريطتك الخاصة مع خرائط جوجل API.. وبعد جوجل لديها بعض كبيرة توثيق و أمثلة لتبدأ.

مهلا، أنا أعمل على بحث مماثل أيضا. لقد وجدت مناقشة جيدة جدا للرياضيات المعنية، بالإضافة إلى روابط لاستفسارات وصيغ، هنا: http://uclue.com/؟xq=2861.. وبعد أتمنى أن يساعدك هذا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top