ããªãã¼ ã·ã¼ãºã³ãè¿ã¥ãä¸、ã客æ§ãåæ»ã«ãè²·ãç©ãã§ããããã«ãããã、ã§ããéãã®å¯¾çãè¬ãããã¨ãæã¾ãã¾ã。ãã®ç¬¬ä¸æ©ã、ã¦ã§ããµã¤ãããªã³ã©ã¤ã³ã¹ãã¢ã«、åºèæ¤ç´¢æ©è½ãè¨ãããã¨ã§ã。åºèæ¤ç´¢æ©è½ã«ãã£ã¦、1 åºèã¾ãã¯å
¨åºèã®æå¨å°ããµã¤ãä¸ã«è¡¨ç¤ºãããã¨ãã§ãããã、ã客æ§ã¯、èªåã®ç¾å¨å°ã«æãè¿ãåºèã¯ã©ãããç¥ããã¨ãã§ãã¾ã。ããããè¦è¾¼ã¿å®¢ãæãè¿ãåºèã®å ´æã容æã«ç¥ããã¨ãã§ããã°、ãã®ã客æ§ãåºã®æãéãã¦å
¥åºããã¨ãããã¨ã¸ä¸æ©è¿ã¥ããã¨ããã¾ã。
E ã³ãã¼ã¹ ãã©ãããã©ã¼ã ã«åºèæ¤ç´¢æ©è½ã追å ãã
ã¦ã§ããµã¤ãã¾ãã¯ãªã³ã©ã¤ã³ã¹ãã¢ã、æ¨æºç㪠E ã³ãã¼ã¹ ãã©ãããã©ã¼ã ã使ã£ã¦ããå ´å、åºèæå¨å°æ
å ±ãå
¥åãããã¨ãã§ããåºèæ¤ç´¢ç¨ã®ãã©ã°ã¤ã³ã使ããã¨ã§、ãããããµã¤ãç¨ã®åºèæ¤ç´¢æ©è½ã使ã§ãã¾ã。åºèã Google ãããã«è¡¨ç¤ºãããã©ã°ã¤ã³ã使ã£ã¦ããå ´å、
API ãã¼ãå
¥æã㦠è¨å®ããå¿
è¦ãããããããã¾ãã。
ã¦ã§ããµã¤ãã« 1 åºèã®ã¿ã®æå¨å°æ
å ±ã¨ç°¡åãªå°å³ã追å ããå ´å
ã³ã¼ããæ¸ããã«、å°å³ä¸ã« 1 åºèã®ã¿ã表示ãããã¨ãã§ãã¾ã。Embed API ã¯、iframe ã使ã£ã¦、YouTube åç»ã®å
±æã¨åãããã«、ã¦ã§ããµã¤ãã«ããããä½ç¨®é¡ãã®å°å³ãæ¿å
¥ãããã¨ãå¯è½ã«ãã¾ã。
Embed API ã¯ã¤ãã¯ã¹ã¿ã¼ãã¬ã¤ã ã§ããã«ä½æãããã¨ãã§ãã¾ã。Google ãããä¸ã§åºèã®æå¨å°ãç¹å®ããã¨、御社ã®ã¦ã§ããµã¤ãã«è²¼ãä»ããã³ã¼ããèªåçæããã¾ã。ã¦ã§ããµã¤ãã«、åºèã®æå¨å°ãããã¾ã§ã®è¡ãæ¹ãæãã¦ããããã¿ã³ã®ã¤ããããããçµã¿è¾¼ããã¨ãã§ãã¾ã。ä»ã®æ¹æ³ã¨åãã、API ãã¼ãå¿
è¦ã§ã。
è¤æ°ã®åºèæå¨å°、è¡ãæ¹、ãã®ä»æ
å ±ã表示ã§ããåºèæ¤ç´¢æ©è½ã追å ããå ´å
ã¦ã§ããµã¤ãã JavaScript ã§æ¸ããããã®ãªãã°、åºèæ¤ç´¢æ©è½ã追å ããã«ã¯、(JavaScript ã«é¢ãããã¦ãã¦ã¯ä¸åæãã)ãã©ã°ã¤ã³ã使ãã、ã¾ãã¯ã«ã¹ã¿ãã¤ãºããåºèæ¤ç´¢æ©è½ã®ä½ãæ¹ãã¾ã¨ãã Google ã®
åºèæ¤ç´¢ç¨ã³ã¼ãã©ã ãåèã«ä½æãã¦ã¿ã¾ããã。以ä¸ã«、ã³ã¼ãã©ãã®ä¸»è¦è¦ç´ ã¨、åºèæ¤ç´¢æ©è½ããµã¤ãå
ã«çµã¿è¾¼ãæ¹æ³ã説æãã¾ã。
æåã«、
ã³ã¼ãããã¦ã³ãã¼ã ãã¦、 æ¶ç©ºã®äºæ¥ã®ããã«ä»®ã®åºèæ¤ç´¢æ©è½ã使ãã¾ã。ãã®ãã¥ã¼ããªã¢ã«ã§ä½¿ããã¹ã¦ã®ãã¡ã¤ã«ã¯、
/src ãã£ã¬ã¯ããªã«ããã¾ã。
次ã«、2 ãæãã
YOUR_API_KEY ã«、æå¹ãª API ãã¼ãè¨å
¥ãã¾ã。
index.html ã®ä¸çªä¸ã«ããã¹ã¯ãªããç¨ã¿ã°ã¯、Maps JavaScript API ãèªã¿è¾¼ãæã§ã。API ãã¼ã使ããæ¹æ³ã¯、ãã¡ãã®åç»ã«ãã説æ ãã覧ãã ãã。
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=visualization"></script>
app.js å
ã§ YOUR_API_KEY ãæ¢ã、ãã®é¨åã API ãã¼ã§ç½®ãæãã¾ã。
const apiKey = 'YOUR_API_KEY';
ããã«ãã£ã¦、åç´ãªã¦ã§ããµã¼ãã¼ãçããã®ãã·ã³ä¸ã§ç¨¼åããããã¨ãã§ãã¾ã。ãã®ã³ã¼ããå®éã«åãã¦ããã¨ãããè¦ã¦、çããã®äºæ¥ç®çã«åããã¦ã«ã¹ã¿ãã¤ãºãã¦ã¿ã¾ããã。
ã³ãã³ãã©ã¤ã³ãã、ä»ãã¦ã³ãã¼ãããã³ã¼ãã®ãã£ã¬ã¯ããªãéã、 /src ãã©ã«ãã«ç§»åãã¾ã。次ã«、ã³ãã³ãã©ã¤ã³ã§ä»¥ä¸ã®ã³ãã³ããå
¥åãã¦ã¦ã§ããµã¼ãã¼ãèµ·åãã¦ãã ãã。
$ python -m SimpleHTTPServer 8000
以ä¸ã§、http://localhost:8000.ã§、ã¦ã§ããã©ã¦ã¶ã®ãã¼ã¸ãé²è¦§ã§ãã¾ã。ã³ãã³ãã©ã¤ã³ã«æ»ã、Control+C ãã¼ãæ¼ãã¦、ã¦ã§ããµã¼ãã¼ã忢ãã¾ã。
次ã®ç»é¢ãè¦ããã¯ãã§ã。
JSON å½¢å¼ã®åºèãªã¹ããã«ã¹ã¿ãã¤ãºãã
stores.json ãã¡ã¤ã«ã§、ãã®æ¶ç©ºã®åºèã®æ
å ±ãæ¸ãæãã¾ã。GeoJSON ã¯、JavaScript Object Notation (JSON) å½¢å¼ã§åºèã®å°çãã¼ã¿ãä¿åããæ¹æ³ã§ã。æ
å ±ãå
¥åãããã、Google Maps API ã¨ã®ç¸æ§ãè¯ãå½¢å¼ã§ã。以ä¸ã¯、JSON å½¢å¼ã§ 1 ã¤ã®åºèã表示ããä¾ã§ã。
{
"geometry": {
"type": "Point",
"coordinates": [-0.1428115,
51.5125168
]
},
"type": "Feature",
"properties": {
"category": "patisserie",
"hours": "10am - 6pm",
"description": "Modern twists on classic pastries. We're part of a larger chain of patisseries and cafes.",
"name": "Josie's Patisserie Mayfair",
"phone": "+44 20 1234 5678",
"storeid": "01"
}
}
ä¸è¨ã¯、ååºèã®æ
å ±ãæ¢ãããã« JavaScript ãè§£éã§ããæ
å ±ã®ãªã¹ãã§ã。JSON ãã¼ã¿ã®ä¸ã§æãéè¦ãªé¨åã¯、
geometry (å¹¾ä½å¦)屿§ã®
coordinates (座æ¨)ã§ã。ãããã®å°çç座æ¨ã¯ Google ã«、å°å³ä¸ã®ã©ãã«ãã¼ã«ã¼ãç½®ãã¹ãããç¥ããã¾ã。
Geocoding API ããã¥ã¡ã³ã å
ã®、ãã¢ã使ã£ã¦、ååºèã®æå¨å°ã®åº§æ¨ãåå¾ãã¦ãã ãã。åºèã®ä½æãå
¥åå¾、”ã¸ãªã³ã¼ã(Geocode)” ãã¿ã³ãæ¼ãã¨、”å ´æ(Location)”ã¨æ¸ãã¦ããæã®æ¨ªã«、ãã®ä½æã®åº§æ¨ãå«ãã ããã«ã表示ããã¾ã。ã³ã³ãããåã®æ°å¤ã¯ç·¯åº¦、ã³ã³ãããå¾ã®æ°å¤ã¯çµåº¦ã表ãã¾ã。ãããã®æ°å¤ã§、ãã®åºèã®æå¨å°ã«é¢ãã JSON å
¥åå¤ã®
coordinates 屿§ã«å
¥ã£ã 2 ã¤ã®æ°å¤ãæ¸ãæãã¦ãã ãã。夿°ã®ä½æãããå ´å、Geocoding API ãç´æ¥å¼ã³åºããæ¹ãããã§ããã。
ãªã¯ã¨ã¹ãã®ä¾ ãããã¥ã¡ã³ãã®ä¸ã«è¨ãã¾ãã。
ãªãã¸ã§ã¯ãã®
properties ã®é
ç®ã«ã¯、å
¥åãããæ
å ±é
ç®ãèªç±ã«é¸ãã§è¨å®ã§ãã¾ãã、ãªã¹ãã«å
¥åããããã¹ã¦ã®ã±ã¼ã¹ã、åä¸ã®å±æ§ã»ãããæã¤ããã«ãã¦ãã ãã。ãããã®æ
å ±ããã¨ã«ååºèã®è©³ç´°æ
å ±ã表示ãã、ã¦ã¼ã¶ã¼ã¯ãã®ä¸ãã、好ããªåºèãé¸ã¹ã¾ã。åºã®ååãå¶æ¥æéãªã©ã®åºã«é¢ãã詳細æ
å ±ã¯、å ´æãã¯ãªãã¯ããã¨ã¤ã³ãã© ã¦ã£ã³ãã¦ã«è¡¨ç¤ºããã¾ã。
å³ã«ç¤ºãããã«、å°å³ä¸ã®å°ç¹ã®ä¸ã¤ã«ã¤ãã¦ã®ã¤ã³ãã© ã¦ã£ã³ãã¦ãè¦ããã¨ãã§ãã¾ã。
詳細ãªã³ã¼ãã¯ã³ã¼ãã©ãã®æé 4 ãã覧ãã ãã。å°å³ä¸ã«è¤æ°ã®ãã¼ã«ã¼ã表示ã、ãã¼ã«ã¼ãã¯ãªãã¯ããã¨ã¤ã³ãã© ã¦ã£ã³ãã¦ãéãã¦åºèã®å±æ§ã表示ããããã«、ã¯ãªã㯠ã¤ãã³ãã追å ãã¦ãã¾ã。
ãµã³ãã«ç¨ã®æ¶ç©ºã®åºã§ã¯ãªã、å®éã®åºèå¨è¾ºã®å°å³ã表示ããããã«å°å³ã®ãã¬ã¼ã (æ )ãã«ã¹ã¿ãã¤ãºããããã¨ãããã§ããã。å°å³ä½æç¨ã®
initMap 颿°ã®ä¸è¡ç®ã、å°å³ã®ä¸å¿ããã³ãºã¼ã ã¬ãã«ãè¨å®ããç®æã§ã。御社ã®ãã¹ã¦ã®åºèã«é¢ãã¦、ãã®ä¸å¿è¿ãã®ç·¯åº¦、çµåº¦ãé¸ãã§ãã ãã(
Google ããã ã使ã£ã¦é©åãªä¸å¤®ã®ç¹ãè¦ã¤ã、å³ã¯ãªãã¯ã㦔ããã®åº§æ¨ã¯?(What's here?)”ãé¸ã¶ã¨、å°å³ä¸ã®ãã®å°ç¹ã®ç·¯åº¦ã¨çµåº¦ãå¾ããã¾ã)。
å°å³ã® center: 屿§ã®
lat:(緯度)ããã³
lng:(çµåº¦)ã®æ°å¤ã、åºèã®å°ç座æ¨ã«ç½®ãæãã¦、ãºã¼ã ã®ã¬ãã«ã調æ´ãã¦(1 ãã 20)、å
¨åºèãå
¥ããºã¼ã ã¬ãã«ãè¦ã¤ãã¦ãã ãã。ãºã¼ã ã¬ãã« 1 ã¯ä¸çå
¨ä½、ãºã¼ã ã¬ãã« 14 ã¯、ãããã ï¼ é½å¸ã表示ããã¾ã。ã³ã¼ãã«å¤æ´ãå ãããã³ã«ä¿åã、 http://localhost:8000 ã®ã³ãã³ãã©ã¤ã³ã§ã¦ã§ããµã¼ãã¼ãåèµ·åãã¦、夿´ãåæ ããã¦ãããã¨ã確èªãã¾ããã。
function initMap() {
// Create the map.
const map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: {lat: 52.632469, lng: -1.689423},
});
ãã®æç¹ã§、ã«ã¹ã¿ãã¤ãºãããã´、ãã¼ã«ã¼、å°å³ã®ã¹ã¿ã¤ã«ã追å ãã¦、å°å³å
¨ä½ãã«ã¹ã¿ãã¤ãºã§ãã¾ã。 詳ããã¯ã³ã¼ãã©ãã®
æé 5 ãã覧ãã ãã。ãµã³ãã«ã³ã¼ãã®ãã¸ãã¯ã§ã¯、ã¹ãã¼ãªã¼ã®”ã«ãã´ãª”屿§ã”ããã£ã¹ãªã¼(patisserie)” ã«ãªã£ã¦ããå ´åã¯ç´«ã®ãã´ãã¼ã«ã¼、”ã«ãã´ãª”屿§ã”ã«ãã§(cafe)” ã«ãªã£ã¦ããå ´åã¯ç·ã®ãã´ãã¼ã«ã¼ã表示ããããã«ãã¦ãã¾ã。
åºèæ¤ç´¢æ©è½ã使ããéã«éè¦ãªãã¨ã¯、ã¦ã¼ã¶ã¼ãèªåã®ç¾å¨ã®å±
å ´æã«åºã¥ãã¦æ¤ç´¢ã§ããããã«ãããã¨ã§ã。ãªã、以ä¸ã«èª¬æããæé ã®ããã«、ç¬èªã®åºèèå¥åã¨ãªã屿§ãååºèã«è¨å®ãã¦ããã¦ãã ãã。ãµã³ãã«ã³ã¼ãã®ä¸ã§、”åºè ID” ã¨ãã屿§ãå®ç¾©ãã¦ãã、ååºèã«ç¬èªã®çªå·ãå²ãæ¯ã£ã¦ãã¾ã。
åºèæ¤ç´¢æ©è½ãæå¹ã«ãã
ãã¹ã¦ã®åºèã®æå¨å°ãå
¥ããå°å³ã宿ãã¾ãã。ããã§、ã¦ã¼ã¶ã¼ããä¸ããããå°ç¹ãã¼ã¿ãèµ·ç¹ã¨ãã¦、御社ã®åºèãã©ãã»ã©è¿ãããç¥ããã¨ãã§ãã¾ã。 ãã¬ã¤ã¹ ãªã¼ãã³ã³ããªã¼ããµã¼ãã¹ã使ãã°、ã¦ã¼ã¶ã¼ã¯ä½æå
¥åãããã«ç°¡åã«è¡ãã¾ã。
ãã¤ã©ã¼ãã¬ã¼ã(å®å)çã¹ã¿ã¤ã«ãè¨å®ãããã¨ã§、ã¦ã¼ã¶ã¼ãã¿ã¤ãããã®ã¨åæã«、æ¤ç´¢ããã¯ã¹ã¯èªåçã«è¤æ°ã®ä½æåè£ãææ¡ãã¾ã。ã¦ã¼ã¶ã¼ã¯、ãã®åè£ã®ä¸ãã、èªåãæã使ã鏿ãããã¨ãã§ãã¾ã。
ãã®æ©è½ãå©ç¨ããã«ã¯、ã¦ã§ããã¼ã¸ã«ä»¥ä¸ã®ããã¹ãã®å
¥åãã£ã¼ã«ãã¨ãã¬ã¤ã¹ ãªã¼ãã³ã³ããªã¼ãæ©è½ã追å ããã³ã¼ãã追å ãã¦ãã ãã。
const input = document.createElement('input');
const options = {
types: ['address'],
componentRestrictions: {country: 'gb'},
fields: ['address_components', 'geometry', 'name'],
};
const autocomplete = new google.maps.places.Autocomplete(input, options);
å ´æã®ç¨®é¡(ãã®å ´å、使ã§、æ½è¨ã§ã¯ããã¾ãã)ãçµãè¾¼ãã ã、ç¹å®ã®å°å(ãã®å ´åã¯è±å½)ã«éå®ãããªãã·ã§ã³ãè¨å®ã§ãã¾ã。
fields ã®æ¬ã«、ã¦ã¼ã¶ã¼ãåè£ã®ä¸ãã 1 ã¤ãé¸ãã éã«åã£ã¦ãã
Place Details (ãã®å°ç¹ã«é¢ãã詳細æ
å ±) ãå®ç¾©ãã¾ã。ãªã、ãã¬ã¤ã¹ ãªã¼ãã³ã³ããªã¼ãæ¤ç´¢ãã¼ã®ãã¹ã¦ã®ãªãã·ã§ã³ã«ã¤ãã¦ã¯
ããã¥ã¡ã³ã ãåç
§ãã¦ãã ãã。
ã¦ã¼ã¶ã¼ã®å±
å ´æãåãã£ãã®ã§、ååºèããã¦ã¼ã¶ã¼ã¾ã§ã®è·é¢ãè¨ç®ã§ãã¾ã。
ã¾ãã¯、å°å³ã®ä¸å¿ãã¦ã¼ã¶ã¼ã鏿ãã使ã«åããã¾ã。æ¬¡ã®æé ã«å¾ã£ã¦ãã ãã:
å°å³ã®ä¸å¿ã、ã¦ã¼ã¶ã¼ã鏿ãã使ã¸ã¨ç§»åãã
1 ã®ä½æããååºèã®åº§æ¨ã¾ã§ã®è·é¢ã測ã
2 ã§æ±ããè·é¢ãçãé ã§è¡¨ç¤ºãã。ããã§、ç¬èªã®åºè ID ã¨ãã屿§ã使ãã¾ã。
åæé ãå®äºããã«ã¯、ããã«è¨ããã³ã¼ããå¿
è¦ã§ãã、ããã«ã¤ãã¦ã¯ã³ã¼ãã©ãã®
æé 6 ããã³ 7 ã§è©³è¿°ãã¦ãã¾ã。
åºèæ¤ç´¢æ©è½ãå
¬éãã
ãµã³ãã«ã³ã¼ãå
ã®
index.html ãã¡ã¤ã«ã¯、ã¦ã§ããã¼ã¸ã«å°å³ãè¼ããããã«æå°éå¿
è¦ãªã³ã¼ããå«ãã§ãã、ãã¼ã«ã«ãã·ã³ã®ä¸ã§åãã¦ãã¾ãã。ã¤ã³ã¿ã¼ãããä¸ã®ã¦ã§ããµã¤ãã«çµ±åããããã«ã¯、以ä¸ã®æé ã«å¾ã£ã¦ãã ãã:
御社ã®ã¦ã§ããµã¤ãã§é常éãã«æ°è¦ãã¼ã¸ã使ã、é¢é£ããã¨ããã« <div id="map"></div> ãæ¿å
¥ãã¾ã。ãã®å±æ§ã¾ã㯠CSS ã¹ã¿ã¤ã«ã®ããããã«、div ã®ãµã¤ãºãæå®ãããã¨ãå¿ããªãã§ãã ãã。
2 ã¤ã® <script> ã¿ã°ãå«ã index.html ã®ä»ã®é¨åã、å
¬éããã¦ã§ããã¼ã¸ã®HTML ãã¡ã¤ã«ã¸ã¨ã³ãã¼ãã¾ã。
æå¾ã«、ã¦ã§ããã¼ã¸ãä¿åããã¦ãããã£ã¬ã¯ããªã«、 app.js ãã¡ã¤ã«ããã³ã«ã¹ã¿ãã¤ãºãã stores.json ãã¡ã¤ã«ãã³ãã¼ãã¾ã。
使ç¨ãã E ã³ãã¼ã¹ ãã©ãããã©ã¼ã ã®ç¨®é¡、æè¡çå°éç¥èã®ã¬ãã«、åºèæ°ã«é¢ããã、ã¦ã§ããµã¤ãã«åºèæ¤ç´¢æ©è½ã追å ããããã®、ãã¼ãºã«åã£ãç°¡åãªæ¹æ³ãã¢ããã¼ããåå¨ãã¾ãã®ã§、ãã²ã試ããã ãã。
Google Maps Platform ã«é¢ãã詳ããæ
å ±ã¯
ãã¡ã ãã覧ãã ãã。ã質åããæè¦ã¯ãã¼ã¸å³ä¸ã®「ãåãåãã」ããæ¿ã£ã¦ããã¾ã。
Posted by
丸山 æºåº· (Tomoyasu Maruyama) - Google Maps ãã¯ãã«ã«ã¢ã«ã¦ã³ãããã¼ã¸ã£
ãã®è¨äºã¯ Google ã® Google Maps Platform Developer Advocate ã§ãã Angela Yu ã«ãã Google Maps Platform Blog ã®è¨äº " How to add a store locator to your website before the holidays" ãå
ã«ç¿»è¨³・å çãããã®ã§ã。詳ããã¯å
è¨äºãã覧ãã ãã。
ããªãã¼ ã·ã¼ãºã³ãè¿ã¥ãä¸、ã客æ§ãåæ»ã«ãè²·ãç©ãã§ããããã«ãããã、ã§ããéãã®å¯¾çãè¬ãããã¨ãæã¾ãã¾ã。ãã®ç¬¬ä¸æ©ã、ã¦ã§ããµã¤ãããªã³ã©ã¤ã³ã¹ãã¢ã«、åºèæ¤ç´¢æ©è½ãè¨ãããã¨ã§ã。åºèæ¤ç´¢æ©è½ã«ãã£ã¦、1 åºèã¾ãã¯å
¨åºèã®æå¨å°ããµã¤ãä¸ã«è¡¨ç¤ºãããã¨ãã§ãããã、ã客æ§ã¯、èªåã®ç¾å¨å°ã«æãè¿ãåºèã¯ã©ãããç¥ããã¨ãã§ãã¾ã。ããããè¦è¾¼ã¿å®¢ãæãè¿ãåºèã®å ´æã容æã«ç¥ããã¨ãã§ããã°、ãã®ã客æ§ãåºã®æãéãã¦å
¥åºããã¨ãããã¨ã¸ä¸æ©è¿ã¥ããã¨ããã¾ã。
E ã³ãã¼ã¹ ãã©ãããã©ã¼ã ã«åºèæ¤ç´¢æ©è½ã追å ãã
ã¦ã§ããµã¤ãã¾ãã¯ãªã³ã©ã¤ã³ã¹ãã¢ã、æ¨æºç㪠E ã³ãã¼ã¹ ãã©ãããã©ã¼ã ã使ã£ã¦ããå ´å、åºèæå¨å°æ
å ±ãå
¥åãããã¨ãã§ããåºèæ¤ç´¢ç¨ã®ãã©ã°ã¤ã³ã使ããã¨ã§、ãããããµã¤ãç¨ã®åºèæ¤ç´¢æ©è½ã使ã§ãã¾ã。åºèã Google ãããã«è¡¨ç¤ºãããã©ã°ã¤ã³ã使ã£ã¦ããå ´å、API ãã¼ãå
¥æã㦠è¨å®ããå¿
è¦ãããããããã¾ãã。
ã¦ã§ããµã¤ãã« 1 åºèã®ã¿ã®æå¨å°æ
å ±ã¨ç°¡åãªå°å³ã追å ããå ´å
ã³ã¼ããæ¸ããã«、å°å³ä¸ã« 1 åºèã®ã¿ã表示ãããã¨ãã§ãã¾ã。Embed API ã¯、iframe ã使ã£ã¦、YouTube åç»ã®å
±æã¨åãããã«、ã¦ã§ããµã¤ãã«ããããä½ç¨®é¡ãã®å°å³ãæ¿å
¥ãããã¨ãå¯è½ã«ãã¾ã。Embed API ã¯ã¤ãã¯ã¹ã¿ã¼ãã¬ã¤ã ã§ããã«ä½æãããã¨ãã§ãã¾ã。Google ãããä¸ã§åºèã®æå¨å°ãç¹å®ããã¨、御社ã®ã¦ã§ããµã¤ãã«è²¼ãä»ããã³ã¼ããèªåçæããã¾ã。ã¦ã§ããµã¤ãã«、åºèã®æå¨å°ãããã¾ã§ã®è¡ãæ¹ãæãã¦ããããã¿ã³ã®ã¤ããããããçµã¿è¾¼ããã¨ãã§ãã¾ã。ä»ã®æ¹æ³ã¨åãã、API ãã¼ãå¿
è¦ã§ã。
è¤æ°ã®åºèæå¨å°、è¡ãæ¹、ãã®ä»æ
å ±ã表示ã§ããåºèæ¤ç´¢æ©è½ã追å ããå ´å
ã¦ã§ããµã¤ãã JavaScript ã§æ¸ããããã®ãªãã°、åºèæ¤ç´¢æ©è½ã追å ããã«ã¯、(JavaScript ã«é¢ãããã¦ãã¦ã¯ä¸åæãã)ãã©ã°ã¤ã³ã使ãã、ã¾ãã¯ã«ã¹ã¿ãã¤ãºããåºèæ¤ç´¢æ©è½ã®ä½ãæ¹ãã¾ã¨ãã Google ã®åºèæ¤ç´¢ç¨ã³ã¼ãã©ã ãåèã«ä½æãã¦ã¿ã¾ããã。以ä¸ã«、ã³ã¼ãã©ãã®ä¸»è¦è¦ç´ ã¨、åºèæ¤ç´¢æ©è½ããµã¤ãå
ã«çµã¿è¾¼ãæ¹æ³ã説æãã¾ã。
æåã«、ã³ã¼ãããã¦ã³ãã¼ã ãã¦、 æ¶ç©ºã®äºæ¥ã®ããã«ä»®ã®åºèæ¤ç´¢æ©è½ã使ãã¾ã。ãã®ãã¥ã¼ããªã¢ã«ã§ä½¿ããã¹ã¦ã®ãã¡ã¤ã«ã¯、 /src ãã£ã¬ã¯ããªã«ããã¾ã。
次ã«、2 ãæãã YOUR_API_KEY ã«、æå¹ãª API ãã¼ãè¨å
¥ãã¾ã。
index.html ã®ä¸çªä¸ã«ããã¹ã¯ãªããç¨ã¿ã°ã¯、Maps JavaScript API ãèªã¿è¾¼ãæã§ã。API ãã¼ã使ããæ¹æ³ã¯、ãã¡ãã®åç»ã«ãã説æ ãã覧ãã ãã。
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=visualization"></script>
app.js å
ã§ YOUR_API_KEY ãæ¢ã、ãã®é¨åã API ãã¼ã§ç½®ãæãã¾ã。
const apiKey = 'YOUR_API_KEY';
ããã«ãã£ã¦、åç´ãªã¦ã§ããµã¼ãã¼ãçããã®ãã·ã³ä¸ã§ç¨¼åããããã¨ãã§ãã¾ã。ãã®ã³ã¼ããå®éã«åãã¦ããã¨ãããè¦ã¦、çããã®äºæ¥ç®çã«åããã¦ã«ã¹ã¿ãã¤ãºãã¦ã¿ã¾ããã。
ã³ãã³ãã©ã¤ã³ãã、ä»ãã¦ã³ãã¼ãããã³ã¼ãã®ãã£ã¬ã¯ããªãéã、 /src ãã©ã«ãã«ç§»åãã¾ã。次ã«、ã³ãã³ãã©ã¤ã³ã§ä»¥ä¸ã®ã³ãã³ããå
¥åãã¦ã¦ã§ããµã¼ãã¼ãèµ·åãã¦ãã ãã。
$ python -m SimpleHTTPServer 8000
以ä¸ã§、http://localhost:8000.ã§、ã¦ã§ããã©ã¦ã¶ã®ãã¼ã¸ãé²è¦§ã§ãã¾ã。ã³ãã³ãã©ã¤ã³ã«æ»ã、Control+C ãã¼ãæ¼ãã¦、ã¦ã§ããµã¼ãã¼ã忢ãã¾ã。
次ã®ç»é¢ãè¦ããã¯ãã§ã。
JSON å½¢å¼ã®åºèãªã¹ããã«ã¹ã¿ãã¤ãºãã
stores.json ãã¡ã¤ã«ã§、ãã®æ¶ç©ºã®åºèã®æ
å ±ãæ¸ãæãã¾ã。GeoJSON ã¯、JavaScript Object Notation (JSON) å½¢å¼ã§åºèã®å°çãã¼ã¿ãä¿åããæ¹æ³ã§ã。æ
å ±ãå
¥åãããã、Google Maps API ã¨ã®ç¸æ§ãè¯ãå½¢å¼ã§ã。以ä¸ã¯、JSON å½¢å¼ã§ 1 ã¤ã®åºèã表示ããä¾ã§ã。
{
"geometry": {
"type": "Point",
"coordinates": [-0.1428115,
51.5125168
]
},
"type": "Feature",
"properties": {
"category": "patisserie",
"hours": "10am - 6pm",
"description": "Modern twists on classic pastries. We're part of a larger chain of patisseries and cafes.",
"name": "Josie's Patisserie Mayfair",
"phone": "+44 20 1234 5678",
"storeid": "01"
}
}
ä¸è¨ã¯、ååºèã®æ
å ±ãæ¢ãããã« JavaScript ãè§£éã§ããæ
å ±ã®ãªã¹ãã§ã。JSON ãã¼ã¿ã®ä¸ã§æãéè¦ãªé¨åã¯、 geometry (å¹¾ä½å¦)屿§ã® coordinates (座æ¨)ã§ã。ãããã®å°çç座æ¨ã¯ Google ã«、å°å³ä¸ã®ã©ãã«ãã¼ã«ã¼ãç½®ãã¹ãããç¥ããã¾ã。Geocoding API ããã¥ã¡ã³ã å
ã®、ãã¢ã使ã£ã¦、ååºèã®æå¨å°ã®åº§æ¨ãåå¾ãã¦ãã ãã。åºèã®ä½æãå
¥åå¾、”ã¸ãªã³ã¼ã(Geocode)” ãã¿ã³ãæ¼ãã¨、”å ´æ(Location)”ã¨æ¸ãã¦ããæã®æ¨ªã«、ãã®ä½æã®åº§æ¨ãå«ãã ããã«ã表示ããã¾ã。ã³ã³ãããåã®æ°å¤ã¯ç·¯åº¦、ã³ã³ãããå¾ã®æ°å¤ã¯çµåº¦ã表ãã¾ã。ãããã®æ°å¤ã§、ãã®åºèã®æå¨å°ã«é¢ãã JSON å
¥åå¤ã® coordinates 屿§ã«å
¥ã£ã 2 ã¤ã®æ°å¤ãæ¸ãæãã¦ãã ãã。夿°ã®ä½æãããå ´å、Geocoding API ãç´æ¥å¼ã³åºããæ¹ãããã§ããã。ãªã¯ã¨ã¹ãã®ä¾ ãããã¥ã¡ã³ãã®ä¸ã«è¨ãã¾ãã。
ãªãã¸ã§ã¯ãã® properties ã®é
ç®ã«ã¯、å
¥åãããæ
å ±é
ç®ãèªç±ã«é¸ãã§è¨å®ã§ãã¾ãã、ãªã¹ãã«å
¥åããããã¹ã¦ã®ã±ã¼ã¹ã、åä¸ã®å±æ§ã»ãããæã¤ããã«ãã¦ãã ãã。ãããã®æ
å ±ããã¨ã«ååºèã®è©³ç´°æ
å ±ã表示ãã、ã¦ã¼ã¶ã¼ã¯ãã®ä¸ãã、好ããªåºèãé¸ã¹ã¾ã。åºã®ååãå¶æ¥æéãªã©ã®åºã«é¢ãã詳細æ
å ±ã¯、å ´æãã¯ãªãã¯ããã¨ã¤ã³ãã© ã¦ã£ã³ãã¦ã«è¡¨ç¤ºããã¾ã。
å³ã«ç¤ºãããã«、å°å³ä¸ã®å°ç¹ã®ä¸ã¤ã«ã¤ãã¦ã®ã¤ã³ãã© ã¦ã£ã³ãã¦ãè¦ããã¨ãã§ãã¾ã。 詳細ãªã³ã¼ãã¯ã³ã¼ãã©ãã®æé 4 ãã覧ãã ãã。å°å³ä¸ã«è¤æ°ã®ãã¼ã«ã¼ã表示ã、ãã¼ã«ã¼ãã¯ãªãã¯ããã¨ã¤ã³ãã© ã¦ã£ã³ãã¦ãéãã¦åºèã®å±æ§ã表示ããããã«、ã¯ãªã㯠ã¤ãã³ãã追å ãã¦ãã¾ã。
ãµã³ãã«ç¨ã®æ¶ç©ºã®åºã§ã¯ãªã、å®éã®åºèå¨è¾ºã®å°å³ã表示ããããã«å°å³ã®ãã¬ã¼ã (æ )ãã«ã¹ã¿ãã¤ãºããããã¨ãããã§ããã。å°å³ä½æç¨ã® initMap 颿°ã®ä¸è¡ç®ã、å°å³ã®ä¸å¿ããã³ãºã¼ã ã¬ãã«ãè¨å®ããç®æã§ã。御社ã®ãã¹ã¦ã®åºèã«é¢ãã¦、ãã®ä¸å¿è¿ãã®ç·¯åº¦、çµåº¦ãé¸ãã§ãã ãã(Google ããã ã使ã£ã¦é©åãªä¸å¤®ã®ç¹ãè¦ã¤ã、å³ã¯ãªãã¯ã㦔ããã®åº§æ¨ã¯?(What's here?)”ãé¸ã¶ã¨、å°å³ä¸ã®ãã®å°ç¹ã®ç·¯åº¦ã¨çµåº¦ãå¾ããã¾ã)。
å°å³ã® center: 屿§ã® lat:(緯度)ããã³ lng:(çµåº¦)ã®æ°å¤ã、åºèã®å°ç座æ¨ã«ç½®ãæãã¦、ãºã¼ã ã®ã¬ãã«ã調æ´ãã¦(1 ãã 20)、å
¨åºèãå
¥ããºã¼ã ã¬ãã«ãè¦ã¤ãã¦ãã ãã。ãºã¼ã ã¬ãã« 1 ã¯ä¸çå
¨ä½、ãºã¼ã ã¬ãã« 14 ã¯、ãããã ï¼ é½å¸ã表示ããã¾ã。ã³ã¼ãã«å¤æ´ãå ãããã³ã«ä¿åã、 http://localhost:8000 ã®ã³ãã³ãã©ã¤ã³ã§ã¦ã§ããµã¼ãã¼ãåèµ·åãã¦、夿´ãåæ ããã¦ãããã¨ã確èªãã¾ããã。
function initMap() {
// Create the map.
const map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: {lat: 52.632469, lng: -1.689423},
});
ãã®æç¹ã§、ã«ã¹ã¿ãã¤ãºãããã´、ãã¼ã«ã¼、å°å³ã®ã¹ã¿ã¤ã«ã追å ãã¦、å°å³å
¨ä½ãã«ã¹ã¿ãã¤ãºã§ãã¾ã。 詳ããã¯ã³ã¼ãã©ãã®æé 5 ãã覧ãã ãã。ãµã³ãã«ã³ã¼ãã®ãã¸ãã¯ã§ã¯、ã¹ãã¼ãªã¼ã®”ã«ãã´ãª”屿§ã”ããã£ã¹ãªã¼(patisserie)” ã«ãªã£ã¦ããå ´åã¯ç´«ã®ãã´ãã¼ã«ã¼、”ã«ãã´ãª”屿§ã”ã«ãã§(cafe)” ã«ãªã£ã¦ããå ´åã¯ç·ã®ãã´ãã¼ã«ã¼ã表示ããããã«ãã¦ãã¾ã。
åºèæ¤ç´¢æ©è½ã使ããéã«éè¦ãªãã¨ã¯、ã¦ã¼ã¶ã¼ãèªåã®ç¾å¨ã®å±
å ´æã«åºã¥ãã¦æ¤ç´¢ã§ããããã«ãããã¨ã§ã。ãªã、以ä¸ã«èª¬æããæé ã®ããã«、ç¬èªã®åºèèå¥åã¨ãªã屿§ãååºèã«è¨å®ãã¦ããã¦ãã ãã。ãµã³ãã«ã³ã¼ãã®ä¸ã§、”åºè ID” ã¨ãã屿§ãå®ç¾©ãã¦ãã、ååºèã«ç¬èªã®çªå·ãå²ãæ¯ã£ã¦ãã¾ã。
åºèæ¤ç´¢æ©è½ãæå¹ã«ãã
ãã¹ã¦ã®åºèã®æå¨å°ãå
¥ããå°å³ã宿ãã¾ãã。ããã§、ã¦ã¼ã¶ã¼ããä¸ããããå°ç¹ãã¼ã¿ãèµ·ç¹ã¨ãã¦、御社ã®åºèãã©ãã»ã©è¿ãããç¥ããã¨ãã§ãã¾ã。 ãã¬ã¤ã¹ ãªã¼ãã³ã³ããªã¼ããµã¼ãã¹ã使ãã°、ã¦ã¼ã¶ã¼ã¯ä½æå
¥åãããã«ç°¡åã«è¡ãã¾ã。
ãã¤ã©ã¼ãã¬ã¼ã(å®å)çã¹ã¿ã¤ã«ãè¨å®ãããã¨ã§、ã¦ã¼ã¶ã¼ãã¿ã¤ãããã®ã¨åæã«、æ¤ç´¢ããã¯ã¹ã¯èªåçã«è¤æ°ã®ä½æåè£ãææ¡ãã¾ã。ã¦ã¼ã¶ã¼ã¯、ãã®åè£ã®ä¸ãã、èªåãæã使ã鏿ãããã¨ãã§ãã¾ã。
ãã®æ©è½ãå©ç¨ããã«ã¯、ã¦ã§ããã¼ã¸ã«ä»¥ä¸ã®ããã¹ãã®å
¥åãã£ã¼ã«ãã¨ãã¬ã¤ã¹ ãªã¼ãã³ã³ããªã¼ãæ©è½ã追å ããã³ã¼ãã追å ãã¦ãã ãã。
const input = document.createElement('input');
const options = {
types: ['address'],
componentRestrictions: {country: 'gb'},
fields: ['address_components', 'geometry', 'name'],
};
const autocomplete = new google.maps.places.Autocomplete(input, options);
å ´æã®ç¨®é¡(ãã®å ´å、使ã§、æ½è¨ã§ã¯ããã¾ãã)ãçµãè¾¼ãã ã、ç¹å®ã®å°å(ãã®å ´åã¯è±å½)ã«éå®ãããªãã·ã§ã³ãè¨å®ã§ãã¾ã。fields ã®æ¬ã«、ã¦ã¼ã¶ã¼ãåè£ã®ä¸ãã 1 ã¤ãé¸ãã éã«åã£ã¦ãã Place Details (ãã®å°ç¹ã«é¢ãã詳細æ
å ±) ãå®ç¾©ãã¾ã。ãªã、ãã¬ã¤ã¹ ãªã¼ãã³ã³ããªã¼ãæ¤ç´¢ãã¼ã®ãã¹ã¦ã®ãªãã·ã§ã³ã«ã¤ãã¦ã¯ããã¥ã¡ã³ã ãåç
§ãã¦ãã ãã。
ã¦ã¼ã¶ã¼ã®å±
å ´æãåãã£ãã®ã§、ååºèããã¦ã¼ã¶ã¼ã¾ã§ã®è·é¢ãè¨ç®ã§ãã¾ã。
ã¾ãã¯、å°å³ã®ä¸å¿ãã¦ã¼ã¶ã¼ã鏿ãã使ã«åããã¾ã。æ¬¡ã®æé ã«å¾ã£ã¦ãã ãã:
å°å³ã®ä¸å¿ã、ã¦ã¼ã¶ã¼ã鏿ãã使ã¸ã¨ç§»åãã
1 ã®ä½æããååºèã®åº§æ¨ã¾ã§ã®è·é¢ã測ã
2 ã§æ±ããè·é¢ãçãé ã§è¡¨ç¤ºãã。ããã§、ç¬èªã®åºè ID ã¨ãã屿§ã使ãã¾ã。
åæé ãå®äºããã«ã¯、ããã«è¨ããã³ã¼ããå¿
è¦ã§ãã、ããã«ã¤ãã¦ã¯ã³ã¼ãã©ãã®æé 6 ããã³ 7 ã§è©³è¿°ãã¦ãã¾ã。
åºèæ¤ç´¢æ©è½ãå
¬éãã
ãµã³ãã«ã³ã¼ãå
ã® index.html ãã¡ã¤ã«ã¯、ã¦ã§ããã¼ã¸ã«å°å³ãè¼ããããã«æå°éå¿
è¦ãªã³ã¼ããå«ãã§ãã、ãã¼ã«ã«ãã·ã³ã®ä¸ã§åãã¦ãã¾ãã。ã¤ã³ã¿ã¼ãããä¸ã®ã¦ã§ããµã¤ãã«çµ±åããããã«ã¯、以ä¸ã®æé ã«å¾ã£ã¦ãã ãã:
御社ã®ã¦ã§ããµã¤ãã§é常éãã«æ°è¦ãã¼ã¸ã使ã、é¢é£ããã¨ããã« <div id="map"></div> ãæ¿å
¥ãã¾ã。ãã®å±æ§ã¾ã㯠CSS ã¹ã¿ã¤ã«ã®ããããã«、div ã®ãµã¤ãºãæå®ãããã¨ãå¿ããªãã§ãã ãã。
2 ã¤ã® <script> ã¿ã°ãå«ã index.html ã®ä»ã®é¨åã、å
¬éããã¦ã§ããã¼ã¸ã®HTML ãã¡ã¤ã«ã¸ã¨ã³ãã¼ãã¾ã。
æå¾ã«、ã¦ã§ããã¼ã¸ãä¿åããã¦ãããã£ã¬ã¯ããªã«、 app.js ãã¡ã¤ã«ããã³ã«ã¹ã¿ãã¤ãºãã stores.json ãã¡ã¤ã«ãã³ãã¼ãã¾ã。
使ç¨ãã E ã³ãã¼ã¹ ãã©ãããã©ã¼ã ã®ç¨®é¡、æè¡çå°éç¥èã®ã¬ãã«、åºèæ°ã«é¢ããã、ã¦ã§ããµã¤ãã«åºèæ¤ç´¢æ©è½ã追å ããããã®、ãã¼ãºã«åã£ãç°¡åãªæ¹æ³ãã¢ããã¼ããåå¨ãã¾ãã®ã§、ãã²ã試ããã ãã。
Google Maps Platform ã«é¢ãã詳ããæ
å ±ã¯ãã¡ã ãã覧ãã ãã。ã質åããæè¦ã¯ãã¼ã¸å³ä¸ã®「ãåãåãã」ããæ¿ã£ã¦ããã¾ã。
Posted by 丸山 æºåº· (Tomoyasu Maruyama) - Google Maps ãã¯ãã«ã«ã¢ã«ã¦ã³ãããã¼ã¸ã£