如何在我的网站上显示地图并允许用户选择一个国家
How to display a map on my wesbite and allow user to choose a country
是否有一种已知的方式,我可以在我的网站上显示世界地图,并允许用户选择一个国家给他适当的内容?
我知道我可以嵌入谷歌地图,但对于谷歌地图,用户有不必要的控制,包括缩放,我不想打扰他。
我宁愿不使用flash。
可以创建一个包含国家列表的select元素。每个选项应包含两个字母的ISO 3166-1 alpha-2国家代码。当您选择一个国家时,您可以使用组件过滤执行该国家的地理编码请求。响应将返回该国家的边界,因此您可以将谷歌地图匹配到这些边界。
请在jsbin上查找示例:http://jsbin.com/qaxucex/edit?html,output
代码片段:
var map;
var geocoder;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 0, lng: 0},
zoom: 1
});
geocoder = new google.maps.Geocoder;
var countryControlDiv = document.getElementById('countries');
map.controls[google.maps.ControlPosition.TOP_CENTER].push(countryControlDiv);
}
function showCountry(code) {
if (code === "") {
map.setOptions({
center: {lat: 0, lng: 0},
zoom: 1
});
} else {
geocoder.geocode({
componentRestrictions: {
country: code
}
}, function(results, status) {
if (status === 'OK') {
map.fitBounds(results[0].geometry.bounds);
} else {
window.alert('Geocode was not successful for the following reason: ' +
status);
}
});
}
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
}
#countries {
margin-top: 12px;
}
<div id="countries">
<select id="country" onchange="showCountry(this.value);">
<option value="">--Select country--</option>
<option value="DE">Germany</option>
<option value="ES">Spain</option>
<option value="US">USA</option>
</select>
</div>
<div id="map"></div>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDztlrk_3CnzGHo7CFvLFqE_2bUKEq1JEU&v=3&callback=initMap"></script>
jqvmap似乎非常适合上述需求。
相关文章:
- d3基于用户选择动态更新节点
- 获取用户选择的不带时区的日期
- 如何使用javascript localStorage保存用户选择并在不同的html页面中显示
- jQuery根据用户选择启用/禁用asp.net控件
- 将用户选择添加到数组中
- 将用户选择的数据临时存储在我的阵列中
- 如果用户选择离开网页,如何删除记录
- 根据用户选择选择页面
- 如何根据用户选择动态更改多个复选框的编号
- 谷歌地图 - 用户选择不允许位置
- 根据用户选择获取 JSON 密钥
- 根据用户选择的输入编写 html 文本
- Hangman游戏将用户选择的字母与单词中的字母进行比较以进行猜测
- Javascript确认,捕获用户选择
- 获取用户选择的选项的值
- NodeJS+JS:根据当前用户选择生成动态链接
- 使用用户选择动态更新页面
- html5文件api,将用户选择的目录存储在sessionStorage中
- 如何根据用户选择顺序重新排序多选的值
- PHP根据用户选择的项目以模式加载数据