![](/img/trans.png)
[英]How to marker search become draggable and give the Longitude & latitude in leaflet
[英]Not being able to create a Draggable Marker when getting latitude and longitude by geocoding
因此,我需要通過使用地址中的緯度和對數來創建可拖動標記。 為了從地址中獲取 lat 和 lng,我執行了以下功能:
var longit;
var lati;
function searchGeocoding() {
map.removeObjects(map.getObjects());
let search;
search = document.getElementById("myText").value;
service.geocode(
{
q: search,
},
(result) => {
result.items.forEach((item) => {
map.setCenter(item.position);
map.setZoom(16);
lati = item.position.lat;
longit = item.position.lng;
addDraggableMarker(map, behavior);
});
},
alert
);
}
哪個工作正常。 但是,當我嘗試使用 Here API Docs 中的示例創建可拖動標記時,出現以下錯誤:
mapsjs-core.js:43 Uncaught InvalidArgumentError: H.map.AbstractMarker#setGeometry (Argument #0 undefined)
at new D (https://js.api.here.com/v3/3.1/mapsjs-core.js:43:977)
at Xf (https://js.api.here.com/v3/3.1/mapsjs-core.js:89:407)
at on.ai.ba (https://js.api.here.com/v3/3.1/mapsjs-core.js:177:548)
at on.ai [as constructor] (https://js.api.here.com/v3/3.1/mapsjs-core.js:177:309)
at new on (https://js.api.here.com/v3/3.1/mapsjs-core.js:395:290)
at addDraggableMarker (http://127.0.0.1:5500/js/test.js:32:16)
at http://127.0.0.1:5500/js/test.js:21:9
at Array.forEach (<anonymous>)
at http://127.0.0.1:5500/js/test.js:14:20
at e.f (https://js.api.here.com/v3/3.1/mapsjs-core.js:31:102)
addDraggableMarker 函數也有一個問題,我注意到它沒有越過marker.draggable = true; 線。 您可以在此處查看示例代碼(我使用的是完全相同的代碼,除了 lat:42.35805,lng:-71.0636 是 lat: lati 和 lng: longit。
我實現了您的代碼段以找出問題所在。 如果您對文本框使用 oninput(),它會為您輸入的每個字母調用地理編碼器。 因此,地理編碼器對那些不完整的詞沒有反應。 您可以通過放置if(result.items.length > 0)
來測試這一點。 如果您希望在用戶鍵入時獲得結果,則建議使用 autosuggest API。 或者您使用提交按鈕僅在用戶輸入完整字符串時調用該函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.