不使用javascript api显示谷歌地图和方向
我使用谷歌地图api来显示地图和方向。用户单击按钮获取位置,地理位置未请求许可,地图或方向面板未显示,是否有帮助 javascript不使用javascript api显示谷歌地图和方向,javascript,html,google-maps,google-maps-api-3,Javascript,Html,Google Maps,Google Maps Api 3,我使用谷歌地图api来显示地图和方向。用户单击按钮获取位置,地理位置未请求许可,地图或方向面板未显示,是否有帮助 javascript <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script> var x = document.getElementById("demo"); function getLocatio
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var directionsService = new google.maps.DirectionsService();
var rendererOptions = {draggable: true};
var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
var destin = new google.maps.LatLng(43.52,-89.91);
var mapOptions =
{
zoom: 13,
mapTypeId:google.maps.MapTypeId.ROADMAP,
center:destin,
travelMode:google.maps.TravelMode.DRIVING,
mapTypeControl:true
};
var map = new google.maps.Map(document.getElementById("mapdisplay"),mapOptions);
directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById("directionsPanel"));
function calcRoute() {
var start = new google.maps.LatLng(lat,lon);
var end = new google.maps.LatLng(43.52, -89.91);
var request =
{
orgin:start,
destination:end,
travelMode:google.maps.TravelMode.DRIVING,
};
directionsService.route(request,function(response,status) {
if(status==google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
};
}
}
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>
var x=document.getElementById(“演示”);
函数getLocation(){
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(showPosition);
}否则{
x、 innerHTML=“此浏览器不支持地理位置。”;
}
}
功能显示位置(位置){
var lat=位置坐标纬度;
var lon=位置坐标经度;
var directionsService=new google.maps.directionsService();
var renderoptions={draggable:true};
var directionsDisplay=new google.maps.directionsrender(renderoptions);
var destin=new google.maps.LatLng(43.52,-89.91);
变量映射选项=
{
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:destin,
travelMode:google.maps.travelMode.DRIVING,
mapTypeControl:true
};
var map=new google.maps.map(document.getElementById(“mapdisplay”)、mapOptions);
方向显示.setMap(地图);
directionsDisplay.setPanel(document.getElementById(“directionsPanel”);
函数calcRoute(){
var start=new google.maps.LatLng(lat,lon);
var end=new google.maps.LatLng(43.52,-89.91);
var请求=
{
奥金:开始,
目的地:完,
travelMode:google.maps.travelMode.DRIVING,
};
路由(请求、功能(响应、状态){
if(status==google.maps.directionstatus.OK){
方向显示。设置方向(响应);
}
};
}
}
功能错误(错误){
开关(错误代码){
案例错误。权限被拒绝:
x、 innerHTML=“用户拒绝了地理位置请求。”
打破
案例错误。位置不可用:
x、 innerHTML=“位置信息不可用。”
打破
大小写错误。超时:
x、 innerHTML=“获取用户位置的请求超时。”
打破
案例错误。未知错误:
x、 innerHTML=“发生未知错误。”
打破
}
}
html
单击按钮获取您的位置:
试试看
您知道每个好的浏览器上都有开发人员控制台吗?您缺少括号第51行:
directionsService.route(request,function(response,status) {
if(status==google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
如果不使用控制台,您将无法前往任何地方,因此请确保您了解浏览器的开发工具。投票关闭,因为您不清楚自己在问什么。请编辑您的问题,以澄清您正在尝试完成什么/什么不起作用。脚本中存在语法错误(调用
directionservice.route
的参数未关闭)我已修复,没有控制台错误,地图显示但没有方向面板,有什么想法吗?
directionsService.route(request,function(response,status) {
if(status==google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});