javascript - 陷入地理位置和反向地理位置
问题描述
我想创建一个用户输入 Pincode/zipcode 的页面,并且我想在其中显示四个只读输入 1) 州名 2) 城市名 3) 经度 4) 纬度
另外我需要知道是否有任何开源或免费的替代谷歌地理定位 Api。
谢谢..
目前,我可以借助 PIN 码获取纬度和经度。这是我的代码:
<script type="text/javascript">
var x = document.getElementById("demo");
function pinLocn() {
var geocoder = new google.maps.Geocoder();
var address = document.getElementById("txtAddress").value;
geocoder.geocode({
'address': address
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
document.getElementById('LATTI').value = latitude;
document.getElementById('LONGI').value = longitude;
// alert(longitude + " " + latitude);
var lat = latitude;
var lon = longitude;
var latlon = new google.maps.LatLng(lat, lon)
var mapholder = document.getElementById('mapholder')
// mapholder.style.height = '250px';
// mapholder.style.width = '500px';
var myOptions = {
center: latlon,
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.SMALL
}
}
var map = new google.maps.Map(document.getElementById("mapholder"), myOptions);
var marker = new google.maps.Marker({
position: latlon,
map: map,
title: "You are here!"
});
} else {
alert("Request failed.")
}
});
};
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var latlon = new google.maps.LatLng(lat, lon)
var mapholder = document.getElementById('mapholder')
// mapholder.style.height = '250px';
// mapholder.style.width = '500px';
var myOptions = {
center: latlon,
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.SMALL
}
}
var map = new google.maps.Map(document.getElementById("mapholder"), myOptions);
var marker = new google.maps.Marker({
position: latlon,
map: map,
title: "You are here!"
});
}
function showError(error) {
switch (error.code) {
case error.PERMISSION_DENIED:
x.innerHTML = "User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML = "Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML = "The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML = "An unknown error occurred."
break;
}
}
</script>
解决方案
推荐阅读
- android - 滚动视图中的回收站视图
- html - 我需要编写什么 HTML 或 CSS 才能使占位符属性的文本可以用鼠标选择/突出显示?
- javascript - 如何在反应中呈现有关道具更改的返回数据
- ansible - 如何在ansible playbook中使用文件的行作为变量?
- uml - 真的需要我的用例图的建议。我正在尝试为下一个目标建模一个用例:
- python - Anaconda 安装的 cudatoolkit 和 cudnn 会影响我当前的配置吗?
- python - 如果索引不同,如何停止 Pandas 中的 Shifting 列
- artifactory - 从 jcenter 下载时出现工件证书错误
- spring - 全栈应用程序 - 在哪里填写非用户定义的字段?| 正面还是背面?
- redis - 从服务器获取 redis 密钥