【问题标题】:Javascript get data from sql using object with openlayers 3Javascript使用带有openlayers 3的对象从sql获取数据
【发布时间】:2016-12-07 20:16:28
【问题描述】:
我使用 javascript(OpenLayers3) 在地图上添加了一些点。这些点的位置是从 sql 中获取的(随机生成的)。我必须为地图上的每个对象创建一个弹出菜单。这个弹窗包含了每个选定点的数据信息,但是我不知道如何使用地图上的对象从 sql 中获取数据。
Points Img
How to get data ? Img
【问题讨论】:
标签:
javascript
asp.net
sql-server
web
openlayers-3
【解决方案1】:
一种方法是从您的 sql 中为 map 中的每个对象传输 ID。您可以通过这种方式添加自定义属性:
var pointFeature = new ol.Feature({
geometry: new ol.geom.Point([0, 0]),
id: 25
});
接下来使用click事件获取特征和ID:
map.on('click', function(evt) {
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature) {
return feature;
});
if (feature) {
alert(feature.get('id'));
}
});
给你!剩下的就是使用 ID 作为参数向您的 asp.net 发出 ajax 请求。
另一种方法是从一开始就将所有属性从你的 sql 转移到 map 上,这样你就不需要发出 ajax 请求——你可以从 feature.properties 中获取属性。但要小心,因为这种解决方案会大大增加您的点数据。