我正在使用backbone.js,我有一些难以理解地理位置的使用。
我会尝试解释这个问题,因为应用程序很大,而且它有很多课程,而且很难理解:
我们有一个" A"查看类,它切换B和C类之间的关系。在C类中我们可以设置另一个D或E,这个最后一个类将我们的地图放在1个属性中。
如您所见,我们有这棵树:
好的,当我需要启动此引擎并从app请求它时选择地理位置时,问题就开始了。接下来是E类的序列:
构造函数:定义map,它可以是默认(OSM)或传输(传输层)。只是一个字符串,知道在创建对象时需要应用程序的内容。
Render: load the next code.
var view = new ol.View2D({
// the view's initial state
center: [0,0],
zoom: 4
});
var marker = new ol.Overlay({
element: document.getElementById('position'),
positioning: ol.OverlayPositioning.CENTER_CENTER
});
if(this.model.get("map") == "default"){
console.log("carga default");
this.map = new ol.Map({
layers: [
new ol.layer.Tile({
preload: 4,
source: new ol.source.OSM()
})
],
renderers: ol.RendererHints.createFromQueryData(),
target: 'container',
view: view
});
var geolocation = new ol.Geolocation();
geolocation.bindTo('projection', this.map.getView());
geolocation.setTracking(true);
this.map.addOverlay(marker);
marker.bindTo('position', geolocation);
view.setCenter(ol.proj.transform([Number(longitude),Number(latitude)], 'EPSG:4326', 'EPSG:3857'));
view.setZoom(16);
geolocation.on('change', function() {
if(geolocation.getPosition() != null){
console.log("cambia");
console.log(geolocation.getPosition()[0]);
}
});
从理论上讲,它有效,但我有下一个问题: - 在Firefox中没有工作,但在chroimun浏览器工作正常... - 如果我"改变"从OSM到传输地图,我删除了属性中的所有数据,我再次加载它,甚至地理位置,但它丢弃了我用作点标记的图像... - 如果我从运输地图返回OSM,我无法恢复点图像...
我不知道这个问题是否与ol3的异步调用和backbone.js的渲染功能有关,我也不知道这里有人可以帮我理解我的内容。我做错了......
另外,正如您所看到的,在setCenter i user 2 vars(经度和纬度)中,我想从第一次地理位置跟踪得到,我该怎么办呢?
这是一个很难回答的问题,但我真的需要一些ol社区的帮助,请我此刻失去。
问候并提前感谢你!