Google maps 谷歌方向服务。如何检测是否在浏览器中禁用地理位置

Google maps 谷歌方向服务。如何检测是否在浏览器中禁用地理位置,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,如果用户已禁用位置功能或使用不受地理位置支持的功能 如何通过编程实现这一点?如果我在浏览器中启用地理位置,则会执行此操作;如果我不启用,则希望执行其他一些代码。如果我不启用或使用不受支持的浏览器,则会执行其他代码 <script type="text/javascript"> var directionDisplay; var directionsService = new google.maps.DirectionsService(); var map; func

如果用户已禁用位置功能或使用不受地理位置支持的功能

如何通过编程实现这一点?如果我在浏览器中启用地理位置,则会执行此操作;如果我不启用,则希望执行其他一些代码。如果我不启用或使用不受支持的浏览器,则会执行其他代码

<script type="text/javascript">
  var directionDisplay;
  var directionsService = new google.maps.DirectionsService();
  var map;

  function initialize() {
    directionsDisplay = new google.maps.DirectionsRenderer();
    var chicago = new google.maps.LatLng(41.850033, -87.6500523);
    var myOptions = {
      zoom:7,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: chicago
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    directionsDisplay.setMap(map);
  }

  function calcRoute() {
    var start = document.getElementById("start").value;
    var end = document.getElementById("end").value;
    var request = {
        origin:start, 
        destination:end,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
    };
    directionsService.route(request, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
      }
    });
  }
</script>
</head>
<body onload="initialize()">
<div>

方向显示;
var directionsService=new google.maps.directionsService();
var映射;
函数初始化(){
directionsDisplay=new google.maps.DirectionsRenderer();
var chicago=new google.maps.LatLng(41.850033,-87.6500523);
变量myOptions={
缩放:7,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:芝加哥
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
方向显示.setMap(地图);
}
函数calcRoute(){
var start=document.getElementById(“start”).value;
var end=document.getElementById(“end”).value;
var请求={
来源:start,
目的地:完,
travelMode:google.maps.Directions travelMode.DRIVING
};
路由(请求、功能(响应、状态){
if(status==google.maps.directionstatus.OK){
方向显示。设置方向(响应);
}
});
}
我会用它来探查浏览器是否支持地理定位,然后采取适当的措施

if (Modernizr.geolocation) {
  //do geolocation/gmaps stuff
} else {
  //do something else
} 
您甚至可以加载垫片,将地理定位功能提供给不支持它的浏览器。下面是一些例子

e、 g

--编辑


方向显示;
var directionsService=new google.maps.directionsService();
var映射;
函数初始化(){
if(现代化地理定位){
//进行地理定位
navigator.geolocation.getCurrentPosition(初始化GEO,句柄_错误);
}否则{
//无地理定位路径
初始化enongeo();
} 
}
函数句柄错误(err){
警报(“无法运行地理定位”);
如果(err.code==1){
警报(“用户拒绝”);//用户说不!
}
初始化enongeo();
}
函数初始化egeo(){
警报(“具有地理位置”);
directionsDisplay=new google.maps.DirectionsRenderer();
var chicago=new google.maps.LatLng(41.850033,-87.6500523);
变量myOptions={
缩放:7,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:芝加哥
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
方向显示.setMap(地图);
} 
函数初始化enongeo(){
警告(“无地理位置”);//执行非地理位置操作。
}
我会用它来探查浏览器是否支持地理定位,然后采取适当的措施

if (Modernizr.geolocation) {
  //do geolocation/gmaps stuff
} else {
  //do something else
} 
您甚至可以加载垫片,将地理定位功能提供给不支持它的浏览器。下面是一些例子

e、 g

--编辑


方向显示;
var directionsService=new google.maps.directionsService();
var映射;
函数初始化(){
if(现代化地理定位){
//进行地理定位
navigator.geolocation.getCurrentPosition(初始化GEO,句柄_错误);
}否则{
//无地理定位路径
初始化enongeo();
} 
}
函数句柄错误(err){
警报(“无法运行地理定位”);
如果(err.code==1){
警报(“用户拒绝”);//用户说不!
}
初始化enongeo();
}
函数初始化egeo(){
警报(“具有地理位置”);
directionsDisplay=new google.maps.DirectionsRenderer();
var chicago=new google.maps.LatLng(41.850033,-87.6500523);
变量myOptions={
缩放:7,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:芝加哥
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
方向显示.setMap(地图);
} 
函数初始化enongeo(){
警告(“无地理位置”);//执行非地理位置操作。
}

我可能会将您的initilize方法重命名为initializeGeo或类似的名称,然后创建一个initilize方法,类似于:
function initialize(){if(modernizer.geolocation){initiliseGeo();}else{initialiseNonGeo}
:我应该使用任何一个库来让Modernizer工作吗?你不能在一个事件中调用两个函数。你应该只需要Modernizer库(你可能只需要选中额外的地理定位API框)和google maps API。您只需调用一个方法,然后使用if-else语句调用相应的方法。只需将默认值保留在额外的值中。HTML5垫片、modernizer load和CSS:我在bot if和else中插入了一个警报,两个都没有警报,这意味着插件不工作。我是否有任何加载该插件的web链接。我可能会将您的initilize方法重命名为initializeGeo或类似的东西,然后创建一个initilize方法,比如:
function initialize(){if(Modernizer.geolocation){initiliseGeo();}else{initialiseNonGeo}
:我应该使用任何库让这个Modernizer工作吗?你不能在一个事件中调用两个函数你应该只需要Modernizer库(您可能只需要选中额外的地理位置API框)还有谷歌地图API。你只需调用一个方法,然后使用if-else语句调用相应的方法。只需保留额外的默认值。HTML5垫片、modernizer load和CSS。注意:我在bot if和else中插入了一个警报,两者都没有警报,这意味着插件无法工作。我是否有该插件获得的任何web链接他已经上膛了。
<html>
<head>
<script type="text/javascript"  src="modernizer.js"></script>
<script type="text/javascript"
  src="http://maps.googleapis.com/maps/api/js?key=&sensor=true"></script>
<script>

var directionDisplay;
var directionsService = new google.maps.DirectionsService();
var map;

function initialize() { 

  if (Modernizr.geolocation) {
  // Do the geolocation  
      navigator.geolocation.getCurrentPosition(initializeGeo, handle_error);          
  } else {
  // No geolocation path
  initializeNonGeo();
  } 
}

function handle_error(err) {
  alert("Geolocation could not be run");
  if (err.code == 1) {
    alert("user denied");// user said no!
  }
  initializeNonGeo();
}

function initializeGeo() {
  alert("has geolocation");
  directionsDisplay = new google.maps.DirectionsRenderer();
  var chicago = new google.maps.LatLng(41.850033, -87.6500523);
  var myOptions = {
    zoom:7,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    center: chicago
  }
  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  directionsDisplay.setMap(map);
} 

function initializeNonGeo() {
   alert("no geolocation"); //do non geo stuff.
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width: 500px; height: 300px"></div>

</body>
</html>