解析:
首先通过w3c Geolocation 标准得到位置信息,此标准是html5的一部分。如果浏览器不支持w3c Geolocation标准,再通过google gears软件得到位置信息,gears是一款支持离线工作的软件。
Google Gears有几个主要的API组件:
一个本地服务器,用来存储和读取离线程序资源(包括HTML, JavaScript, images等)。
一个小型数据库(以SQLite构建),用来储存本地数据。
一个工作池,用来让开发者将本地数据与服务器端后台同步。
一个桌面模型可使网络程序的操作贴近桌面程序。
一个地理定位模型,能够让网络程序侦测到目前用户的地理位置。
源码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Map Geolocation</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="http://code.google.com/apis/gears/gears_init.js"></script>
<script type="text/javascript">
var initialLocation;
var siberia = new google.maps.LatLng(60, 105);
var newyork = new google.maps.LatLng(40.69847032728747, -73.9514422416687);
var browserSupportFlag = new Boolean();
var map;
var infowindow = new google.maps.InfoWindow();
function initialize() {
var myOptions = {
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// Try W3C Geolocation method (Preferred)
if(navigator.geolocation) {
browserSupportFlag = true;
navigator.geolocation.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
contentString = "Location found using W3C standard";
map.setCenter(initialLocation);
infowindow.setContent(contentString);
infowindow.setPosition(initialLocation);
infowindow.open(map);
}, function() {
handleNoGeolocation(browserSupportFlag);
});
} else if (google.gears) {
// Try Google Gears Geolocation
browserSupportFlag = true;
var geo = google.gears.factory.create('beta.geolocation');
geo.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.latitude,position.longitude);
contentString = "Location found using Google Gears";
map.setCenter(initialLocation);
infowindow.setContent(contentString);
infowindow.setPosition(initialLocation);
infowindow.open(map);
}, function() {
handleNoGeolocation(browserSupportFlag);
});
} else {
// Browser doesn't support Geolocation
browserSupportFlag = false;
handleNoGeolocation(browserSupportFlag);
}
}
function handleNoGeolocation(errorFlag) {
if (errorFlag == true) {
initialLocation = newyork;
contentString = "Error: The Geolocation service failed.";
} else {
initialLocation = siberia;
contentString = "Error: Your browser doesn't support geolocation. Are you in Siberia?";
}
map.setCenter(initialLocation);
infowindow.setContent(contentString);
infowindow.setPosition(initialLocation);
infowindow.open(map);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas"></div>
</body>
</html>
分享到:
相关推荐
googleMap根据经纬度获取地理位置,里面有使用代码,只需填入经纬度即可获取地理位置信息
Google Map API获取地理位置信息 根据地点获取经纬度坐标 处理Google MAP返回的多个数据。
一个google map小应用 应用google map api可以获得点的经纬度并且可以根据地理位置名称定位。
利用Google Map解析中国大陆4095个省市县的默认地理位置,获取地理坐标
本小菜刚开始学习HTML5,现在对其中的Geolocation颇感兴趣,结合Google Map的API实现基本的地图定位功能主要是由以下几个步骤:获取当前地理位置、调用Google Map API获取当前位置信息
本程序实现了如下功能: (1)VC中通过浏览器控件,加载指定html,在html中用javascript调用...(4)压缩包里含google map API中文参考手册,在javascript中用的到的。 对于想在VC中调用google map 的新手是极大的帮助。
使用google map api, 通过输入经纬度获取地理位置描述
正是有此类高质量高活跃的公益组织的贡献,使得个人或者一个较小团队也能做出媲美GoogleMap、高德地图之类高质量的GIS系统。 详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/125456279
在android模拟器上可以使用google map,定位自己的位置,也可以定位任何给定的经度和纬度的精确位置,还可以获得各种语言的地理位置信息。
地理位置定位的几种方式:IP地址,GPS,Wifi,GSM/CDMA 地理位置获取流程: 1、用户打开需要获取地理位置的web应用。 2、应用向浏览器请求地理位置,浏览器弹出... 与 Google Map、或者 Baidu Map 交互呈现位置信息 G
使用Google Map的搜索自动完成和地理位置API的示例React Native App 跑步 要运行该应用程序: 首先使用正确的API密钥上的<GOOGLE> 。 运行yarn install 运行yarn start 要求 Node.js,NPM,Yarn 世博会,expo-...
getGeocoderLatitude 根据地址获取到经纬度 getAboutLocation 根据经纬度获取到所在城市信息 bd_encrypt 将 GCJ-02 坐标转换成 BD-09 坐标 bd_decrypt 将 BD-09 坐标转换成 GCJ-02 坐标
这个是引用googlemap api 免费接口。里面有根据地址分析经纬度,根据经纬定位,还有后台调整经纬度。来实现你的地理位置更加准确。里面有什么不清楚。可以问我。我可以做几个简单范例给你。QQ:691442225
Place geo information on a map using the Google Maps or ArcGIS JavaScript APIs Save geo data with databases, the Keyhole Markup Language, or the shapefile format Be familiar with several practical ...
基于Google Map的地理位置查询系统,盛雅东,王小捷,随着GPS应用的普及, 基于位置的服务LBS ( Location- Based Service) 得到了广泛的发展,其应用领域如地理位置查询、POI 搜索、自助旅游服务等��
随着移动互联网应用的迅速发展,利用智能手机提供的实时地理位置信息服务功能扩展出众多 LBS(LocationBasedService)应用,将实时地理位置信息与手机的便捷、移动特性结合,为人们提供多种多样的应用场景,比如实时...
3. 经纬度: 咖啡店所在位置的地理坐标,包括纬度和经度信息,用于精确定位咖啡店的位置。 4. 店铺类型:描述咖啡店的类型或特色,例如传统咖啡馆、现代咖啡连锁店、特色咖啡馆等。 5. 营业时间:咖啡店的营业时间,...
World Map Globe Edition 2 添加到您的场景一个...该资产包含一个完整的API,用于探索和利用提供的国家、省和城市目录—获取地理位置、城市都市人口、所属国家和省等信息,导航到这些信息,获取省和国家的邻居,等等!
自适应地理位置数据搜寻器 自适应地理定位数据搜寻器是Google Place的智能自适应搜寻器,它基于蜂窝猜想并由Python和MongoDB开发。 受Roomba工作启发,并获得3条款BSD许可。 多梅尼科摩纳哥-http: 要求: 码头工人...