首先,我想说我是这个网站的新用户,从未使用过Google Maps API,并且拥有JavaScript的中级知识。
我做了什么: 我通过向Google“我的地图”添加位置来整理自定义“商店定位器”。然后我创建了一个带有下拉菜单的网页,根据您从下拉列表中选择的位置,它会更改保存地图的iFrame的SRC。因此,当页面加载时,您会看到更大比例的地图,并通过选择特定位置,它会将地图更改为该特定位置(缩放和裁剪)。
我需要做什么: 我现在需要做的就是添加一个“按邮政编码搜索”,这将允许用户输入他们的邮政编码并让网页返回最近位置的列表,并希望他们的距离。
是否有人知道我是否可以将“按邮件搜索”功能添加到我的自定义Google地图中?
我的代码发布的内容确实不多,但如果它有用,我很乐意这样做。我的地图的当前功能很好,问题是我不知道从哪里开始添加邮政编码搜索。
以下是我所指的网页的链接:http://74.53.82.155/store-locator.htm
感谢任何帮助。
提前致谢, gnrlchaos
答案 0 :(得分:3)
一种选择是使用returns locations from zip codes的地理名称网络服务。以下是如何将该Web服务与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>
答案 1 :(得分:1)
我不知道如何以您想要的方式与嵌入式Google地图进行互动。最好的选择是使用Google Maps API创建自己的地图。谷歌有一些很棒的documentation和examples可以帮助你入门。
答案 2 :(得分:0)