javascript - 我正在尝试从 Web 浏览器创建地理围栏并创建了一个动态标记,当越过它时会发出警报
问题描述
以下代码位于两个不同的文件中,我从 UI 本身获取值,我将图层 ID 保持不变,如“1234”。
但我收到以下错误 -TypeError: marker1.getPosition is not a function
标记代码——
var marker1 =new H.map.Marker(center, {volatility: true});
var geofencing=platform.getGeofencingService();
map.addObject(marker1);
map.addEventListener("tap",ev=>{
var target =ev.target;
map.removeObject(marker1);
marker1 = new H.map.Marker(map.screenToGeo(ev.currentPointer.viewportX,ev.currentPointer.viewportY));
map.addObject(marker1);
geofencing.request(
H.service.extension.geofencing.Service.EntryPoint.SEARCH_PROXIMITY,
{
"layer_ids":["1234"],
"proximity":marker1.getPosition().lat + "," + marker1.getPosition().lng,
"key_attributes":["NAME"]
},
result=>{
alert("within the geofence");
},
error =>{
console.error(error);
}
);
});
地理围栏代码——
import {hereCredentials } from './Configurations.js';
import {platform,map} from './main.js';
document.getElementById("geofencesub").onclick=function geofence(){
var latitude=document.getElementById("lat").value;
var longitude=document.getElementById("lng").value;
var radius=document.getElementById("rad").value;
var lname =document.getElementById("lname").value
var circle = new H.map.Circle({lat: latitude, lng: longitude},radius);
map.addObject(circle);
var geo1 = circle.getGeometry();
var wkt = geo1.toString();
var zip = new JSZip();
zip.file("data.wkt","NAME\tWKT\n"+"testfence"+"\t"+wkt);
zip.generateAsync({type:"blob"}).then(content =>{
var formData= new FormData();
formData.append("zipfile",content);
axios.post("https://gfe.api.here.com/2/layers/upload.json",formData,{
headers:{
"content-type" : "multipart/form-data"
},
params:{
"app_id":hereCredentials.id,
"app_code":hereCredentials.code,
"layer_id":lname
}
}).then(result => {
console.log(result);
},error => {
console.error(error);
});
},error => {
console.error(error);
});
}
解决方案
您收到错误“marker1.getPosition 不是函数”,因为getPosition
它确实不是H.map.Marker的函数。
试试marker1.getGeometry()
吧。
函数getGeomery是要使用的函数,以获取标记位置。
推荐阅读
- matlab - 一个关于在MATLAB中绘制曲面图的问题
- ios - 心跳振动
- if-statement - 填写公式
- laravel - Select2 jQuery CSS 更改,页面渲染。(laravel 5.7 项目)
- r - 在 tidyverse 中过滤每组的前 5 个观察值
- django - Django 'runserver' 命令产生错误
- html - 如何从网页覆盖浏览器/系统缩放
- django - 请求正文没有从 axios 传递给 Django Rest Framework
- google-cloud-platform - 使用 REST API 在 GCP 中创建服务帐户密钥
- ios - UserDefaults.standard.removeObject(forKey: ) 是否有可能失败?