openlayers 4.6.5如何将下一个标记移动到新坐标

openlayers 4.6.5如何将下一个标记移动到新坐标,openlayers,move,Openlayers,Move,在openlayers 4.6.5中 如何将下一个标记移动到新坐标。我试过: var transform = ol.proj.getTransform('EPSG: 4326', 'EPSG: 3857'); var coordinate = transform([lng, lat]); var geometry = new ol.geom.point(); geometry.setCoordinates(coordinate); feature.setGeometry(geometry);

在openlayers 4.6.5中 如何将下一个标记移动到新坐标。我试过:

var transform = ol.proj.getTransform('EPSG: 4326', 'EPSG: 3857');
var coordinate = transform([lng, lat]);
var geometry = new ol.geom.point();
geometry.setCoordinates(coordinate);
feature.setGeometry(geometry);

但是,当使用ajax重新填充坐标时,该功能不起作用。我收到一个javascript错误,发布的代码是:
uncaughttypeerror:cannotreadproperty'getCode'为null,在这一行:

var transform = ol.proj.getTransform('EPSG: 4326', 'EPSG: 3857');
当我修复这个问题时,我得到另一个javascript错误:
uncaughttypeerror:ol.geom.point不是构造函数,在这一行:

var geometry = new ol.geom.point();
这是一个打字错误,应该是:

var geometry = new ol.geom.Point();
然后它就起作用了

工作代码

var coordinate = ol.proj.transform(newLngLat, 'EPSG:4326', 'EPSG:3857');
var geometry = new ol.geom.Point();
geometry.setCoordinates(coordinate);
feature.setGeometry(geometry);
代码片段:

var-feature=新的ol.feature(新的ol.geom.Point(ol.proj.fromlonat([-117.1610838,32.715738]));
var距离=1000;
对于(var j=0;j<100;j++){
setTimeout((函数(j){
返回函数(){
//计算新位置
如果(j>=50)距离=-1000;
var posn=feature.getGeometry().getCoordinates();
变量lngLat=ol.proj.transform(posn,'EPSG:3857','EPSG:4326');
控制台日志(lngLat);
var newLngLat=计算偏移量(lngLat,距离,45);
控制台日志(newLngLat);
变量坐标=ol.proj.transform(newLngLat,'EPSG:4326','EPSG:3857');
var geometry=新的ol.geom.Point();
几何。设置坐标(坐标);
特征。设置几何(几何);
//var newPosn=ol.proj.transform(newLngLat,'EPSG:4326','EPSG:3857');
//pointFeature.getGeometry().setCoordinates(newPosn);
}
}(j) ),1000*j);
}
var map=新ol.map({
图层:[
新的ol.layer.Tile({//TileLayer({
来源:new ol.source.TileJSON({
网址:'https://api.tiles.mapbox.com/v3/mapbox.geography-class.json?secure'
})
}),
新的ol.layer.Vector({//VectorLayer({
source:new ol.source.Vector({//VectorSource({
特色:[特色]
}),
风格:新的ol风格({
图片:新建ol.style.Icon(/**@type{module:ol/style/Icon~Options}*/({
主播:[0.5,46],
主播:“分数”,
anchorYUnits:'像素',
不透明度:0.95,
src:'https://openlayers.org/en/v5.1.3/examples/data/icon.png'
})),
笔划:新的ol风格笔划({
宽度:3,
颜色:[255,0,0,1]
}),
填充:新的ol.style.fill({
颜色:[0,0,255,0.6]
})
})
})
],
目标:“地图”,
视图:新ol.view({
中心:Lonlat的其他项目([-117.1610838,32.715738]),
缩放:9
})
});
html,
身体{
身高:100%;
宽度:100%;
填充:0px;
边际:0px;
}
.地图{
身高:100%;
宽度:100%;
}