Geocoding API:取得API 金鑰| Google 地圖平台付費方案
文章推薦指數: 80 %
Google Maps API 網路服務會拒絕同時使用用戶端ID 與API 金鑰送出的要求。
產生數位簽章. Google 地圖平台付費方案客戶向Geocoding API 送出要求時,必須 ...
Google
地圖平台
總覽
產品
定價
說明文件
開始使用
開始使用Google地圖平台
API挑選器
計費和定價方式
報表與監控
地圖ID
常見問題
支援與資源
事件管理
地圖介面集
MapsJavaScriptAPI
MapsSDKforAndroid
MapsSDKforiOS
MapsStaticAPI
StreetViewStaticAPI
MapsEmbedAPI
地圖網址
MapsElevationAPI
路徑介面集
DirectionsAPI
DistanceMatrixAPI
RoadsAPI
解決方案
產業解決方案
遊戲服務
運輸與物流
地點介面集
PlacesAPI
PlacesSDKforAndroid
PlacesSDKforiOS
PlacesLibrary、MapsJavaScriptAPI
GeocodingAPI
GeolocationAPI
TimeZoneAPI
其他資源
API安全性最佳做法
地圖涵蓋範圍詳細資料
最佳化指南
行動作業系統和軟體支援
推出階段
淘汰項目
資產追蹤方案
網址編碼
WordPress使用者
網誌
社群
StackOverflow
GitHub
YouTube
Discord
Twitter
IssueTracker
English
BahasaIndonesia
Deutsch
Español
Español–AméricaLatina
Français
Português–Brasil
Русский
中文–简体
中文–繁體
日本語
한국어
登入
付費方案
Google
地圖平台
總覽
產品
定價
說明文件
更多
網誌
社群
更多
開始使用
開始使用Google地圖平台
API挑選器
計費和定價方式
報表與監控
地圖ID
常見問題
支援與資源
事件管理
地圖介面集
MapsJavaScriptAPI
MapsSDKforAndroid
MapsSDKforiOS
MapsStaticAPI
StreetViewStaticAPI
MapsEmbedAPI
地圖網址
MapsElevationAPI
路徑介面集
DirectionsAPI
DistanceMatrixAPI
RoadsAPI
解決方案
產業解決方案
遊戲服務
運輸與物流
地點介面集
PlacesAPI
PlacesSDKforAndroid
PlacesSDKforiOS
PlacesLibrary、MapsJavaScriptAPI
GeocodingAPI
GeolocationAPI
TimeZoneAPI
其他資源
API安全性最佳做法
地圖涵蓋範圍詳細資料
最佳化指南
行動作業系統和軟體支援
推出階段
淘汰項目
資產追蹤方案
網址編碼
WordPress使用者
StackOverflow
GitHub
YouTube
Discord
Twitter
IssueTracker
首頁
產品
Google地圖平台
付費方案
GeocodingAPI:取得API金鑰
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
注意事項:Google地圖平台付費方案不再開放註冊或提供給新客戶。
選擇驗證方法
如要使用Google地圖平台,您必須使用API金鑰或是用戶端ID,搭配數位簽章來驗證要求。
可選用的驗證方法取決於您的授權類型:
採用付費方案的客戶可以使用API金鑰或是用戶端ID搭配數位簽章。
使用舊版授權的客戶則必須使用用戶端ID與數位簽章進行驗證。
在判斷要採用哪種驗證方法時,您可以考量下列這幾點:
使用API金鑰進行驗證(付費方案)
如果使用API金鑰來驗證要求,您可以:
在GoogleCloudConsole的「API」頁面管理所有的API。
在CloudConsole的「API」頁面查看即時使用資料和30天的歷來使用資料。
將channel參數加進要求中,以便查看更詳細的使用情況報表。
透過GoogleCloudConsole查看內含超過30天資料的使用情況報表。
使用用戶端ID和數位簽章進行驗證(付費方案或舊版授權)如果使用用戶端ID和數位簽章來驗證要求,您可以:
將channel參數加進要求中,以便查看更詳細的使用情況報表。
透過CloudConsole查看內含超過30天資料的使用情況報表。
使用MapsJavaScriptAPI適用的地圖Analytics(分析)工具。
進一步瞭解付費方案客戶可用的報表。
使用API金鑰進行驗證
注意事項:此做法僅限付費方案客戶使用。
取得API金鑰
API金鑰是一組專屬ID,用來驗證與專案相關的使用權限與帳單處理要求。
取得API金鑰的方法如下:
在CloudConsole的專案選取器頁面中,選取或建立您想新增API金鑰的GoogleCloud專案。
前往專案選取器頁面
注意事項:如要使用方案的完整功能,付費客戶應使用與付費帳戶連結的專案。
購買授權後,您會收到以下列格式編寫的付費資產名稱:gme-[company]>proj-[number]([type])。
為確保您存取的是正確的專案,請透過console.cloud.google.com/project/number(將number替換成專案編號)以「專案擁有者身分」登入CloudConsole。
您可以在歡迎信中查看專案擁有者是誰。
前往「Google地圖平台」>「憑證」頁面。
前往「憑證」頁面
在「憑證」頁面上,按一下[建立憑證]>[API金鑰]。
「建立的API金鑰」對話方塊會顯示您新建立的API金鑰。
按一下[關閉]。
新建立的API金鑰便會出現在「憑證」頁面的「API金鑰」下方。
(在實際工作環境中使用新建立的金鑰前,記得要先限制API金鑰。
)
將API金鑰加進要求中
每個Google地圖平台要求都必須包含API金鑰。
請將以下範例中的YOUR_API_KEY替換成您的API金鑰。
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY
使用API金鑰的要求必須透過HTTPS傳送,而對於使用用戶端ID的要求,則不強制但建議採用HTTPS。
此外,應用程式要求如果含有敏感的使用者資料(如使用者所在位置),也必須採用HTTPS。
限制API金鑰
限制API金鑰可確保只有經授權的要求才能使用API金鑰,進而提升您應用程式的安全性。
我們極力建議您按照操作說明設定API金鑰的限制。
詳情請參閱API安全性最佳做法。
限制API金鑰的方法如下:
前往「Google地圖平台」>「憑證」頁面。
前往「憑證」頁面
選取您要設定限制的API金鑰。
畫面隨即顯示API金鑰屬性頁面。
在「金鑰限制」下方,設定下列限制:
應用程式限制:
如要接受來自您提供的清單中網路伺服器IP位址提出的要求,請從「應用程式限制」清單中選取[IP位址(網路伺服器和Cron工作等)]。
指定一個IPv4或IPv6位址,或是採用CIDR標記法的子網路(例如192.168.0.0/22)。
如果您還需要輸入其他項目,系統會在您新增上述項目後顯示新的對話方塊。
API限制:
按一下[限制金鑰]。
從「選取API」下拉式選單中選取[Google地圖平台]。
如果選單未列出Google地圖平台,您必須先加以啟用。
如要完成變更,請按一下[儲存]。
使用用戶端ID搭配數位簽章進行驗證
注意事項:採用付費方案或舊版授權的客戶皆可使用此作法。
購買Google地圖平台付費方案授權後,您會收到Google寄送的歡迎電子郵件,內含您的用戶端ID及私人加密編譯金鑰(可用來產生您專屬的數位簽章)。
您必須將用戶端ID與專屬數位簽章傳遞給以下程式碼範例中的client和signature參數。
https://maps.googleapis.com/maps/api/geocode/json
?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA
&client=YOUR_CLIENT_ID
&signature=SIGNATURE
將YOUR_CLIENT_ID替換成歡迎電子郵件中隨附的用戶端ID。
您的用戶端ID會以gme-字元開頭。
將SIGNATURE替換成您專屬的數位簽章(請參閱產生數位簽章)。
注意事項:
使用用戶端ID搭配數位簽章驗證Google地圖平台時,您也可以選擇使用channel參數接收詳細的使用報表。
詳情請參閱付費方案報表簡介。
如果您原先使用API金鑰進行驗證,但現在要改用用戶端ID,必須將要求中的key參數移除。
GoogleMapsAPI網路服務會拒絕同時使用用戶端ID與API金鑰送出的要求。
產生數位簽章
Google地圖平台付費方案客戶向GeocodingAPI送出要求時,必須提供數位signature。
透過歡迎電子郵件中隨附的私人加密編譯金鑰即可產生這個簽章(詳情請見「進一步瞭解私人加密編譯金鑰」一節的說明)。
請按照下列步驟為您的要求產生數位簽章。
建立不含簽章的要求網址,並務必加上client參數。
請注意,所有非標準字元都需要經過網址編碼處理:
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&client=clientID
注意事項:所有Google服務都要求採用UTF-8字元編碼(也就是以隱含方式納入ASCII)。
如果您的應用程式運作時會使用其他字元集,請確認網址是以UTF-8字元建立,且經過妥善的網址編碼處理。
去除要求中的網域部分,只留下路徑及查詢:
/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&client=clientID
擷取您的私密金鑰(該金鑰是以網址適用的修改版Base64進行編碼),並使用HMAC-SHA1演算法簽署前個步驟產生的網址。
您可能需要將此金鑰解碼為原始的二進位格式。
請注意,在大部分的加密編譯程式庫中,最終的簽章是採用二進位格式。
注意事項:修改版Base64網址編碼會將標準Base64編碼的+及/字元分別替換成-和_,因此這類Base64簽章不需要再進行網址編碼處理。
使用網址適用的修改版Base64為產生的二進位簽章進行編碼,將此簽章轉換為可在網址內傳送的物件。
將此簽章附加至網址(置於signature參數內):
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&client=clientID&signature=base64signature
注意事項:
我們的伺服器會藉由專屬簽章,驗證是否所有使用您用戶端ID產生要求的網站都已獲得授權。
此外,每個網址也都有專屬簽章,確保只有在已要求產生新簽章的情況下,才能修改使用您用戶端ID的要求。
如果嘗試以無效的簽章存取GeocodingAPI,就會發生HTTP403(禁止)錯誤。
如要讓應用程式改用網址簽署,請務必先進行測試,確保簽章可發出有效的要求。
請先測試原始網址是否有效,以及是否可以產生正確的簽章。
如需使用伺服器端程式碼導入網址簽署的做法範例,請參閱「網址簽署的程式碼範例」。
如要立即簽署網址,請在下方輸入網址和網址簽署密鑰。
網址必須採用前文步驟1所述的格式,並且經過網址編碼處理。
網址簽署程式碼範例
後續章節會說明使用伺服器端程式碼導入網址簽署的方式。
網址應一律在伺服器端簽署,以避免向其他使用者暴露您的加密編譯金鑰。
Python
以下範例使用標準Python程式庫簽署網址(下載程式碼)。
#!/usr/bin/python
#-*-coding:utf-8-*-
"""SignsaURLusingaURLsigningsecret"""
importhashlib
importhmac
importbase64
importurllib.parseasurlparse
defsign_url(input_url=None,secret=None):
"""SignarequestURLwithaURLsigningsecret.
Usage:
fromurlsignerimportsign_url
signed_url=sign_url(input_url=my_url,secret=SECRET)
Args:
input_url-TheURLtosign
secret-YourURLsigningsecret
Returns:
ThesignedrequestURL
"""
ifnotinput_urlornotsecret:
raiseException("Bothinput_urlandsecretarerequired")
url=urlparse.urlparse(input_url)
#Weonlyneedtosignthepath+querypartofthestring
url_to_sign=url.path+"?"+url.query
#Decodetheprivatekeyintoitsbinaryformat
#WeneedtodecodetheURL-encodedprivatekey
decoded_key=base64.urlsafe_b64decode(secret)
#CreateasignatureusingtheprivatekeyandtheURL-encoded
#stringusingHMACSHA1.Thissignaturewillbebinary.
signature=hmac.new(decoded_key,str.encode(url_to_sign),hashlib.sha1)
#Encodethebinarysignatureintobase64forusewithinaURL
encoded_signature=base64.urlsafe_b64encode(signature.digest())
original_url=url.scheme+"://"+url.netloc+url.path+"?"+url.query
#ReturnsignedURL
returnoriginal_url+"&signature="+encoded_signature.decode()
if__name__=="__main__":
input_url=input("URLtoSign:")
secret=input("URLsigningsecret:")
print("SignedURL:"+sign_url(input_url,secret))
Java
以下範例使用JDK1.8以上版本提供的java.util.Base64類別;如果您使用較舊版本,建議使用ApacheCommons或類似程式碼(下載程式碼)。
importjava.io.IOException;
importjava.io.UnsupportedEncodingException;
importjava.net.URI;
importjava.net.URISyntaxException;
importjava.security.InvalidKeyException;
importjava.security.NoSuchAlgorithmException;
importjava.util.Base64;//JDK1.8only-olderversionsmayneedtouseApacheCommonsorsimilar.
importjavax.crypto.Mac;
importjavax.crypto.spec.SecretKeySpec;
importjava.net.URL;
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
publicclassUrlSigner{
//Note:Generally,youshouldstoreyourprivatekeysomeplacesafe
//andreadthemintoyourcode
privatestaticStringkeyString="YOUR_PRIVATE_KEY";
//TheURLshownintheseexamplesisastaticURLwhichshouldalready
//beURL-encoded.Inpractice,youwilllikelyhavecode
//whichassemblesyourURLfromuserorwebserviceinput
//andplugsthosevaluesintoitsparameters.
privatestaticStringurlString="YOUR_URL_TO_SIGN";
//Thisvariablestoresthebinarykey,whichiscomputedfromthestring(Base64)key
privatestaticbyte[]key;
publicstaticvoidmain(String[]args)throwsIOException,
InvalidKeyException,NoSuchAlgorithmException,URISyntaxException{
BufferedReaderinput=newBufferedReader(newInputStreamReader(System.in));
StringinputUrl,inputKey=null;
//Fortestingpurposes,allowuserinputfortheURL.
//Ifnoinputisentered,usethestaticURLdefinedabove.
System.out.println("EntertheURL(mustbeURL-encoded)tosign:");
inputUrl=input.readLine();
if(inputUrl.equals("")){
inputUrl=urlString;
}
//ConvertthestringtoaURLsowecanparseit
URLurl=newURL(inputUrl);
//Fortestingpurposes,allowuserinputfortheprivatekey.
//Ifnoinputisentered,usethestatickeydefinedabove.
System.out.println("EnterthePrivatekeytosigntheURL:");
inputKey=input.readLine();
if(inputKey.equals("")){
inputKey=keyString;
}
UrlSignersigner=newUrlSigner(inputKey);
Stringrequest=signer.signRequest(url.getPath(),url.getQuery());
System.out.println("SignedURL:"+url.getProtocol()+"://"+url.getHost()+request);
}
publicUrlSigner(StringkeyString)throwsIOException{
//Convertthekeyfrom'websafe'base64tobinary
keyString=keyString.replace('-','+');
keyString=keyString.replace('_','/');
System.out.println("Key:"+keyString);
//Base64isJDK1.8only-olderversionsmayneedtouseApacheCommonsorsimilar.
this.key=Base64.getDecoder().decode(keyString);
}
publicStringsignRequest(Stringpath,Stringquery)throwsNoSuchAlgorithmException,
InvalidKeyException,UnsupportedEncodingException,URISyntaxException{
//RetrievetheproperURLcomponentstosign
Stringresource=path+'?'+query;
//GetanHMAC-SHA1signingkeyfromtherawkeybytes
SecretKeySpecsha1Key=newSecretKeySpec(key,"HmacSHA1");
//GetanHMAC-SHA1MacinstanceandinitializeitwiththeHMAC-SHA1key
Macmac=Mac.getInstance("HmacSHA1");
mac.init(sha1Key);
//computethebinarysignaturefortherequest
byte[]sigBytes=mac.doFinal(resource.getBytes());
//base64encodethebinarysignature
//Base64isJDK1.8only-olderversionsmayneedtouseApacheCommonsorsimilar.
Stringsignature=Base64.getEncoder().encodeToString(sigBytes);
//convertthesignatureto'websafe'base64
signature=signature.replace('+','-');
signature=signature.replace('/','_');
returnresource+"&signature="+signature;
}
}
NodeJS
以下範例使用原生Node模組簽署網址(下載程式碼)。
'usestrict'
constcrypto=require('crypto');
consturl=require('url');
/**
*Convertfrom'websafe'base64totruebase64.
*
*@param{string}safeEncodedStringThecodeyouwanttotranslate
*fromawebsafeform.
*@return{string}
*/
functionremoveWebSafe(safeEncodedString){
returnsafeEncodedString.replace(/-/g,'+').replace(/_/g,'/');
}
/**
*Convertfromtruebase64to'websafe'base64
*
*@param{string}encodedStringThecodeyouwanttotranslatetoa
*websafeform.
*@return{string}
*/
functionmakeWebSafe(encodedString){
returnencodedString.replace(/\+/g,'-').replace(/\//g,'_');
}
/**
*Takesabase64codeanddecodesit.
*
*@param{string}codeTheencodeddata.
*@return{string}
*/
functiondecodeBase64Hash(code){
//"newBuffer(...)"isdeprecated.UseBuffer.fromifitexists.
returnBuffer.from?Buffer.from(code,'base64'):newBuffer(code,'base64');
}
/**
*Takesakeyandsignsthedatawithit.
*
*@param{string}keyYouruniquesecretkey.
*@param{string}dataTheurltosign.
*@return{string}
*/
functionencodeBase64Hash(key,data){
returncrypto.createHmac('sha1',key).update(data).digest('base64');
}
/**
*SignaURLusingasecretkey.
*
*@param{string}pathTheurlyouwanttosign.
*@param{string}secretYouruniquesecretkey.
*@return{string}
*/
functionsign(path,secret){
consturi=url.parse(path);
constsafeSecret=decodeBase64Hash(removeWebSafe(secret));
consthashedSignature=makeWebSafe(encodeBase64Hash(safeSecret,uri.path));
returnurl.format(uri)+'&signature='+hashedSignature;
}
C#
以下範例使用預設的System.Security.Cryptography程式庫簽署網址要求。
請注意,我們必須轉換預設的Base64編碼,才能導入安全網址版本(下載程式碼)。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Security.Cryptography;
usingSystem.Text;
usingSystem.Text.RegularExpressions;
usingSystem.Web;
namespaceSignUrl{
publicstructGoogleSignedUrl{
publicstaticstringSign(stringurl,stringkeyString){
ASCIIEncodingencoding=newASCIIEncoding();
//convertingkeytobyteswillthrowanexception,needtoreplace'-'and'_'charactersfirst.
stringusablePrivateKey=keyString.Replace("-","+").Replace("_","/");
byte[]privateKeyBytes=Convert.FromBase64String(usablePrivateKey);
Uriuri=newUri(url);
byte[]encodedPathAndQueryBytes=encoding.GetBytes(uri.LocalPath+uri.Query);
//computethehash
HMACSHA1algorithm=newHMACSHA1(privateKeyBytes);
byte[]hash=algorithm.ComputeHash(encodedPathAndQueryBytes);
//convertthebytestostringandmakeurl-safebyreplacing'+'and'/'characters
stringsignature=Convert.ToBase64String(hash).Replace("+","-").Replace("/","_");
//AddthesignaturetotheexistingURI.
returnuri.Scheme+"://"+uri.Host+uri.LocalPath+uri.Query+"&signature="+signature;
}
}
classProgram{
staticvoidMain(){
//Note:Generally,youshouldstoreyourprivatekeysomeplacesafe
//andreadthemintoyourcode
conststringkeyString="YOUR_PRIVATE_KEY";
//TheURLshownintheseexamplesisastaticURLwhichshouldalready
//beURL-encoded.Inpractice,youwilllikelyhavecode
//whichassemblesyourURLfromuserorwebserviceinput
//andplugsthosevaluesintoitsparameters.
conststringurlString="YOUR_URL_TO_SIGN";
stringinputUrl=null;
stringinputKey=null;
Console.WriteLine("EntertheURL(mustbeURL-encoded)tosign:");
inputUrl=Console.ReadLine();
if(inputUrl.Length==0){
inputUrl=urlString;
}
Console.WriteLine("EnterthePrivatekeytosigntheURL:");
inputKey=Console.ReadLine();
if(inputKey.Length==0){
inputKey=keyString;
}
Console.WriteLine(GoogleSignedUrl.Sign(inputUrl,inputKey));
}
}
}
針對測試部分,您可以試試看以下網址及私密金鑰能否產生正確的簽章。
請注意,這組私密金鑰僅供測試,實際上無法通過任何Google服務的驗證。
網址:
https://maps.googleapis.com/maps/api/geocode/json?address=New+York&client=clientID
私密金鑰:
vNIXE0xscrmjlyV-12Nj_BvUPaw=
要簽署的網址部分:
/maps/api/geocode/json?address=New+York&client=clientID
簽章:
chaRF2hTJKOScPr-RQCEhZbSzIE=
完整的已簽署網址:
https://maps.googleapis.com/maps/api/geocode/json?address=New+York&client=clientID&signature=chaRF2hTJKOScPr-RQCEhZbSzIE=
其他程式語言範例
如需其他程式語言範例,請參閱網址簽署專案。
進一步瞭解私人加密編譯金鑰
系統會使用您的用戶端ID核發私人加密編譯網址簽署金鑰,該金鑰是您和Google之間的「共同密鑰」。
這組簽署金鑰為您獨有,且專屬於您的用戶端ID。
因此,請妥善保管簽署金鑰。
這組金鑰不得用於任何要求、儲存在任何網站上,或張貼到任何公開論壇;否則凡是能取得該簽署金鑰的使用者,都可以假冒您的身分提出要求。
注意事項:這組私人加密編譯簽署金鑰與GoogleCloudConsole核發的API金鑰「不」一樣。
如果您遺失了私人加密編譯金鑰,請登入CloudConsole,然後按一下[地圖:管理用戶端ID]以擷取該金鑰。
注意事項:在您的付費方案授權到期後,CloudConsole的「憑證」頁面將不再顯示「用戶端ID」部分。
排解驗證相關問題
如果要求格式錯誤或提供的簽章無效,Google地圖平台會傳回HTTP403(Forbidden)錯誤。
如要排解個別網址的問題,您可以使用網址簽署偵錯工具。
此工具可以讓您快速驗證網址和應用程式產生的簽章。
除了上述方法外,付費方案客戶也可以登入CloudConsole,然後選取[資源]>[Google地圖平台付費方案線上工具]>[網路服務和ImageAPI的網址簽署偵錯工具],接著解決個別網址的問題。
Exceptasotherwisenoted,thecontentofthispageislicensedundertheCreativeCommonsAttribution4.0License,andcodesamplesarelicensedundertheApache2.0License.Fordetails,seetheGoogleDevelopersSitePolicies.JavaisaregisteredtrademarkofOracleand/oritsaffiliates.
Lastupdated2021-08-25UTC.
[{
"type":"thumb-down",
"id":"missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type":"thumb-down",
"id":"tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type":"thumb-down",
"id":"outOfDate",
"label":"過時"
},{
"type":"thumb-down",
"id":"translationIssue",
"label":"翻譯問題"
},{
"type":"thumb-down",
"id":"samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type":"thumb-down",
"id":"otherDown",
"label":"其他"
}]
[{
"type":"thumb-up",
"id":"easyToUnderstand",
"label":"容易理解"
},{
"type":"thumb-up",
"id":"solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type":"thumb-up",
"id":"otherUp",
"label":"其他"
}]
StackOverflow
使用google-maps標記提出問題。
GitHub
運用現有樣本進行設計。
Discord
與其他開發人員交流,瞭解Google地圖平台。
IssueTracker
如果發生錯誤,請傳送錯誤報告給我們!
瞭解詳情
教學課程
定價與方案
API挑選器
MapsAPI總覽
平台
Android
iOS
網路
網路服務
產品資訊
聯絡銷售人員
社群支援
付費支援
使用條款
Android
Chrome
Firebase
GoogleCloudPlatform
所有產品
條款
隱私權
訂閱GoogleDevelopers電子報
訂閱
English
BahasaIndonesia
Deutsch
Español
Español–AméricaLatina
Français
Português–Brasil
Русский
中文–简体
中文–繁體
日本語
한국어
延伸文章資訊
- 1HTML5 的Geolocation(地理位置) API | 文章 - DeTools 工具死神
google map 誕生到今年已經15 年的樣子,地理資訊系統的應用目前也已經非常多元,不過這邊還是來講一下HTML5 的Geolocation(地理位置) API 該怎麼用吧 ...
- 2地理位置定位(Geolocation) - Web APIs | MDN
Web Apps 若需要使用者的位置,可透過Geolocation API 取得相關資訊。而基於隱私權的考量,這些Web Apps 均必須取得使用者的許可之後,才能發佈位置 ...
- 3Google Map教學:操作地址 - 我的部落格
製作Google Map需要google提供的google map API才能實做,今天我們使用Geocoding API裡的地理編碼請求與Map JavaScript API來實做,以下介紹兩...
- 4茶米老師教室- Geolocation API - Google Sites
- 5[30apis] Day 2 : Google Map Geolocation API - iT 邦幫忙
關於Geolocation 在實作之前,我大致上知道Google Map 有個定位的API (廢話)但我一直以為它叫做location API。 所以在這邊對Location 跟Geolo...