日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在js或者App中,调起第三方地图产品(URI API)的汇总

發布時間:2024/1/1 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在js或者App中,调起第三方地图产品(URI API)的汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

URI API是為開發者提供直接調起第三方地圖產品Web地圖地圖手機客戶端)以滿足特定業務場景下應用需求的程序接口,開發者只需按照接口規范構造一條標準的URI,便可在PC和移動端瀏覽器或移動開發應用中調起第三方地圖產品,進行地圖展示和檢索、線路查詢、導航等功能,無需進行復雜的地圖功能開發。

一、百度地圖URI API

地圖調起API,官方連接地址:http://lbsyun.baidu.com/index.php?title=uri

a、實現原理

在百度地圖的清單文件中對主頁面設置了

android:scheme="baidumap"android:host="map"屬性.指定了接受Urischemebaidumaphostmap。當接收到指定Uri后,在主界面中對Uri進行解析和業務拆分,實現功能的調用。 其中nativeschemebaidumaphostmapwebschemebdapphostmap

b、使用方法

第三方APP在使用該類型接口時,手機中需要安裝Android百度地圖,同時需要拼寫符合協議規范的Uri串,通過srartActivity的方式進行調用。示例如下

Intent i1 = new Intent();// 駕車導航i1.setData(Uri.parse("baidumap://map/navi?query=故宮"));startActivity(i1);//網頁應用調起Android百度地圖方式舉例<a href="bdapp://map/navi?query=故宮">駕車導航</a>

二、高德地圖URI API

地圖調起API,官方連接地址:http://lbs.amap.com/api/amap-mobile/summary/

如果您需要在瀏覽器中打開高德地圖App,例如在H5頁面中跳轉到高德地圖App,或者在本地App中加載的H5頁面跳轉到高德地圖App,需要使用scheme調用,在H5中的鏈接中加入高德地圖的Scheme即可,如(以導航為例):

<a href="androidamap://navi?sourceApplication=appname&amp;poiname=fangheng&amp;lat=36.547901&amp;lon=104.258354&amp;dev=1&amp;style=2">導航</a>

如果您需要在本地App中打開高德地圖App,這種場景即在本地App中通過Java代碼調用高德地圖頁面功能,此時就需要使用 Intent調用。同樣以導航功能為例:

Java Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.addCategory(Intent.CATEGORY_DEFAULT);//將功能Scheme以URI的方式傳入data Uri uri = Uri.parse("androidamap://navi?sourceApplication=appname&amp;poiname=fangheng&amp;lat=36.547901&amp;lon=104.258354&amp;dev=1&amp;style=2"); intent.setData(uri);//啟動該頁面即可 startActivity(intent);


三、騰訊地圖URI API

地圖調起URI,官方鏈接地址:http://lbs.qq.com/uri_v1/index.html

已支持: Web / Wap 版騰訊地圖產品,即將支持:Android / iOS版騰訊地圖。

四、蘋果地圖

http://maps.apple.com/?daddr=San+Francisco,+CA&saddr=cupertino

詳細官方接口說明:

https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html

五、谷歌地圖

對于Android,是通過Intent形式打開Native Map.

Intent intent=new Intent(Intent.ACTION_VIEW); ?
String url = "https://maps.google.com/maps?q=31.207149,121.593086(金科路)&z=17&hl=en"; ?
Uri uri = Uri.parse(url); ?
intent.setData(uri); ?
startActivity(intent);??

詳細官方Intent接口說明:

http://developer.android.com/guide/components/intents-common.html#Maps


六、JS調用示例代碼 nav.js

//獲取瀏覽器信息
var browser = {
ua : function() {
var u = navigator.userAgent;
var isChrome = u.match(/Chrome\/([\d.]+)/)
|| u.match(/CriOS\/([\d.]+)/);
var isAndroid = u.match(/(Android);?[\s\/]+([\d.]+)?/);
var iosVersion = function() {
if (/iP(hone|od|ad)/.test(navigator.platform)) {
var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
return [ parseInt(v[1], 10), parseInt(v[2], 10),
parseInt(v[3] || 0, 10) ];
}
}();
var chromeVersion = function() {
var chrome = navigator.userAgent.match(/Chrome\/(\d+)\./);
if (chrome) {
return parseInt(chrome[1], 10);
}
}();
var ios9 = iosVersion && iosVersion[0] >= 9;
var chrome18 = isChrome && isAndroid && chromeVersion
&& chromeVersion > 18;
return { // 移動終端瀏覽器版本信息
trident : u.indexOf('Trident') > -1, // IE內核
presto : u.indexOf('Presto') > -1, // opera內核
webKit : u.indexOf('AppleWebKit') > -1, // 蘋果、谷歌內核
gecko : u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, // 火狐內核
mobile : !!u.match(/AppleWebKit.*Mobile.*/), // 是否為移動終端
iOS : !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios終端
android : u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, // android終端或uc瀏覽器
iPhone : u.indexOf('iPhone') > -1, // 是否為iPhone或者QQHD瀏覽器
iPad : u.indexOf('iPad') > -1, // 是否iPad
webApp : u.indexOf('Safari') == -1, // 是否web應該程序,沒有頭部與底部
weChat : u.indexOf('MicroMessenger') > -1,
UC : u.indexOf('UCBrowser') > -1,
u3 : u.indexOf('U3') > -1,
chrome : u.indexOf('Chrome') > -1,
windowsPhone : u.indexOf("Windows Phone") > -1,
samsung : u.indexOf("Samsung") > -1,
QQ : (u.match(/\sQQ/i) != null ? u.match(/\sQQ/i).toLowerCase() == " qq"
: false),
isChrome : isChrome,
isAndroid : isAndroid,
iosVersion : iosVersion,
chromeVersion : chromeVersion,
ios9 : ios9,
chrome18 : chrome18
};
}()
}
var ua = browser.ua;

// 打開地圖App,開始導航
function openMapApp(lat, lng, addr) {
// 地圖uri api數組
var uri = new Array();
if (ua.android) {
// 百度地圖uri api
uri[0] = "bdapp://map/navi?location=" + lat + "," + lng + "&query="
+ addr;
// 高德地圖uri api
uri[1] = "androidamap://navi?sourceApplication=xlwx&poiname=" + addr
+ "&lat=" + lat + "&lon=" + lng + "&dev=1&style=2";
// 騰訊地圖uri api
uri[2] = "qqmap://map/marker?marker=coord:" + lat + "," + lng
+ ";title:" + addr + "&referer=xlwx";
} else if (ua.iOS) {
// 百度地圖uri api
uri[0] = "baidumap://map/navi?location=" + lat + "," + lng + "&query="
+ addr;
// 高德地圖uri api
uri[1] = "iosamap://navi?sourceApplication=xlwx&poiname=" + addr
+ "&lat=" + lat + "&lon=" + lng + "&dev=1&style=2";
// 騰訊地圖uri api
uri[2] = "qqmap://map/marker?marker=coord:" + lat + "," + lng
+ ";title:" + addr + "&referer=xlwx";
// 蘋果地圖uri api
uri[3] = "http://maps.apple.com/?sll=" + lat + "," + lng + "&address="
+ addr;
}
//調用uri
if(uri.length == 0){
return;
}
window.location.href = uri[0];
//啟動定時器time1
var time1 = setTimeout(function() {
// 若啟動應用,則js會被中斷較長時間,超出此范圍
window.location.href = uri[1];
}, 2000);
//啟動定時器time2
var time2 = setTimeout(function() {
// 若啟動應用,則js會被中斷較長時間,超出此范圍
window.location.href = uri[2];
}, 4000);
//清除定時器
window.beforeunload = function() {
if(time1 != null){
clearTimeout(time1);
}
if(time2 != null){
clearTimeout(time2);
}
}
window.pagehide = function() {
if(time1 != null){
clearTimeout(time1);
}
if(time2 != null){
clearTimeout(time2);
}
}
window.onblur = function() {
if(time1 != null){
clearTimeout(time1);
}
if(time2 != null){
clearTimeout(time2);
}
}
}

完!!!

總結

以上是生活随笔為你收集整理的在js或者App中,调起第三方地图产品(URI API)的汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。