カスタム Google マップに郵便番号による検索を追加する
-
11-09-2019 - |
質問
まず最初に、私はこのサイトを初めて使用し、Google Maps API を使用したことがなく、JavaScript については中程度の知識があることをお伝えしておきます。
私がしたこと:Google の「マイ マップ」に場所を追加して、カスタムの「店舗検索」を作成しました。次に、ドロップダウン メニューを備えた Web ページを作成しました。ドロップダウンから選択した場所に応じて、マップを保持する iFrame の SRC が変更されます。したがって、ページが読み込まれると、より大きな縮尺の地図が表示され、特定の場所を選択すると、地図がその特定の場所に変更されます (ズームとトリミング)。
私は何をする必要がありますか:この地図を完成させるために今しなければならないことは、「郵便番号による検索」を追加することです。これにより、ユーザーは郵便番号を入力すると、Web ページに最も近い場所とできればその距離のリストが返されるようになります。
カスタム Google マップに「zip による検索」機能を追加できるかどうか知っている人はいますか?
実際に投稿するコードはそれほど多くありませんが、お役に立ちましたら、喜んで投稿させていただきます。現在の地図の機能はうまく機能していますが、問題は郵便番号検索をどこから追加すればよいかわからないことです。
私が参照しているページへのリンクは次のとおりです。 http://74.53.82.155/store-locator.htm
助けていただければ幸いです。
事前に、Gnrlchaosに感謝します
解決
1つのオプションは、 geonames Webサービスを使用することですに。ここでは道場でその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>
他のヒント
あなたが望む方法で埋め込み Google マップを操作する方法がわかりません。最良のオプションは、次の方法で独自のマップを作成することです。 Google マップ API. 。Googleには素晴らしいものがあります ドキュメンテーション そして 例 始めましょう。
ねえ、私も同様の検索に取り組んでいます。私はここで、かなり良い関係する数学の議論だけでなく、クエリや式へのリンクが見つかりました:のhttp:/ /uclue.com/?xq=2861する。このことができます願っています。