我在 Android 手机上运行 OpenLayers.js?mobile。
我希望能够从 GPS 绘制线条和多边形,以及单击屏幕添加功能。如果我在屏幕上单击以开始使用新顶点绘制草图,那么我可以调用 insertXY(lat,lon) 或单击以添加顶点,并且它按预期工作。
但是,在尝试通过在激活的 OpenLayers.Control.DrawFeature 上调用 insertXY(lat,lon) 来开始一个新草图时,在我调用 finishSketch() 之前什么都没有发生,这会引发此错误 - “TypeError: Cannot read property 'geometry' of null ”。
如何使用 insertXY() 开始草图?
这应该像在此示例中一样工作:http: //openlayers.org/dev/examples/editing-methods.html#
这是相关的javascript:
var map;
var draw;
map = new OpenLayers.Map({
div: "map",
layers: [
var roads = new OpenLayers.Layer.Vector()
],
center: new OpenLayers.LonLat(0, 0),
zoom: 1
});
draw = new OpenLayers.Control.DrawFeature(roads, OpenLayers.Handler.Path);
map.addControl(draw);
draw.activate()
function add_GPS_Line_vertex(lon,lat) {
/* this function only works if sketch has been manually started */
var lat = parseFloat(lat);
var lon = parseFloat(lon);
var point = new OpenLayers.Geometry.Point(lon, lat);
lon = point.x;
lat = point.y;
draw.insertXY(lon,lat);
}