簡體   English   中英

如何使用地方網址創建谷歌地圖標記

[英]How to create google maps markers with place url

我想知道是否可以使用https://www.google.lk/maps/place/London等地點網址在Google地圖中創建標記,而不是使用緯度和經度坐標。 我正在使用以下代碼來創建標記。

function initialize() {
  var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
  var mapOptions = {
    zoom: 4,
    center: myLatlng
  }
  var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

  var marker = new google.maps.Marker({
      position: myLatlng,
      map: map,
      title: 'Hello World!'
  });
}

google.maps.event.addDomListener(window, 'load', initialize);

您可以將Places庫用於此目的,特別是google.maps.places.PlacesService對象的textSearch方法。

完整的例子

 function initialize() { var mapOptions = { mapTypeId: google.maps.MapTypeId.ROADMAP, zoom: 15 } var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); var request = { query: 'London' }; var service = new google.maps.places.PlacesService(map); service.textSearch(request, callback); function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { var marker = new google.maps.Marker({ map: map, place: { placeId: results[0].place_id, location: results[0].geometry.location } }); map.setCenter(results[0].geometry.location); } } } google.maps.event.addDomListener(window, 'load', initialize); 
  html, body, #map-canvas { height: 100%; margin: 0px; padding: 0px; } 
 <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&libraries=places"></script> <div id="map-canvas"></div> 

您可能需要首先使用Google Map Geocoding服務轉換地名長度和緯度元組,如下所示:

  1. 通過GET請求Google地理編碼服務,傳遞地名 (只是一個城市名稱,因為您使用的示例是正常的):

    GET: https//maps.googleapis.com/maps/api/geocode/json? address = london

    這將返回包含有關倫敦的地理空間信息的JSON:

     { "results" : [ { "address_components" : [ { "long_name" : "ลอนดอน", "short_name" : "ลอนดอน", "types" : [ "locality", "political" ] }, { "long_name" : "สหราชอาณาจักร", "short_name" : "GB", "types" : [ "country", "political" ] } ], "formatted_address" : "ลอนดอน สหราชอาณาจักร", "geometry" : { "bounds" : { "northeast" : { "lat" : 51.6723432, "lng" : 0.148271 }, "southwest" : { "lat" : 51.38494009999999, "lng" : -0.3514683 } }, "location" : { "lat" : 51.5073509, "lng" : -0.1277583 }, "location_type" : "APPROXIMATE", "viewport" : { ... ... 
    1. 給定JSON響應,在緯度,經度坐標中提取該位置的“粗略位置” ,如下所示:

       var coord = response.results[0].geometry.location; 

    所以你得到: coord = {lat : 51.5073509, lng : -0.1277583}

    1. 然后在該給定坐標處繪制標記 ,並完成。

       var marker = new google.maps.Marker({ position: coord, // {lat : 51.5073509, lng : -0.1277583} map: map, title: 'London' }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM