Android フォンで OpenLayers.js?mobile を実行しています。
GPS から線やポリゴンを描画したり、画面をクリックして機能を追加したりしたいと考えています。画面をクリックして新しい頂点でスケッチを開始すると、insertXY(lat,lon) を呼び出すか、クリックして頂点を追加すると、期待どおりに機能します。
ただし、アクティブ化された OpenLayers.Control.DrawFeature で insertXY(lat,lon) を呼び出して新しいスケッチを開始しようとすると、このエラーをスローする finishSketch() を呼び出すまで何も起こりません - 「TypeError: null のプロパティ 'geometry' を読み取ることができません"。
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);
}