4

まず、私はこのサイトを初めて使用し、Google Maps APIを使用したことがなく、JavaScriptの中間知識を持っていることを伝えたいと思います。

私が行ったこと: Googleの「マイマップ」に場所を追加して、カスタムの「店舗検索」を作成しました。次に、ドロップダウンメニューを使用してWebページを作成しました。ドロップダウンから選択した場所に応じて、マップを保持しているiFrameのSRCが変更されます。したがって、ページが読み込まれると、より大きな縮尺の地図が表示され、特定の場所を選択すると、地図がその特定の場所に変更されます(ズームとトリミング)。

私がする必要があること: この地図を完成させるために今私がする必要があるのは、ユーザーが自分の郵便番号を入力し、Webページに最も近い場所のリストを返すことを可能にする「郵便番号による検索」を追加することです。うまくいけば、彼らの距離。

カスタムGoogleマップに「zipで検索」機能を追加できるかどうか誰かが考えていますか?

私のコードに投稿するものは実際にはあまりありませんが、それが役立つ場合は、喜んでそうします。私の地図の現在の機能はうまく機能しています。問題は、郵便番号検索の追加をどこから始めればよいかわからないことです。

これが私が参照しているページへのリンクです:http://74.53.82.155/store-locator.htm

どんな助けでも大歓迎です。

よろしくお願いします、gnrlchaos

4

3 に答える 3

3

1つのオプションは、郵便番号から場所を返すgeonamesWebサービスを使用することです。これは、dojoでそのWebサービスを使用する方法の簡単な例です。

<!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>
于 2009-08-21T15:15:00.337 に答える
1

埋め込まれた Google マップを希望どおりに操作する方法がわかりません。最善の方法は、Google Maps APIを使用して独自の地図を作成することです。Google には、作業を開始するための優れたドキュメントがいくつかあります。

于 2009-07-13T15:15:14.670 に答える
0

ねえ、私も同様の検索に取り組んでいます。関連する数学のかなり良い議論、およびクエリと数式へのリンクを見つけました: http://uclue.com/?xq=2861。お役に立てれば。

于 2009-08-21T14:57:01.303 に答える