Javascript 在OpenLayers 3中设置视图范围
我刚刚开始研究OpenLayers 3,并尝试缩放到一个单一功能,其范围是服务器发送的geoJSON对象,该对象在每次刷新时都会更改,因此我无法硬编码缩放/中心点。我希望这种情况最好在页面加载后尽快发生,但我正在努力让它正常工作 我一直收到一个错误,说uncaughttypeerror:undefined不是我试图从geoJSON对象读取几何体的行中的函数,我不确定如何修复它。geoJSON字符串似乎很好,在将其传递给readGeometry之前,我也尝试过对其进行解析,但结果相同 如果有比我现在更简单/更快的方法,我也很想听听! 非常感谢您的帮助Javascript 在OpenLayers 3中设置视图范围,javascript,geojson,openlayers-3,Javascript,Geojson,Openlayers 3,我刚刚开始研究OpenLayers 3,并尝试缩放到一个单一功能,其范围是服务器发送的geoJSON对象,该对象在每次刷新时都会更改,因此我无法硬编码缩放/中心点。我希望这种情况最好在页面加载后尽快发生,但我正在努力让它正常工作 我一直收到一个错误,说uncaughttypeerror:undefined不是我试图从geoJSON对象读取几何体的行中的函数,我不确定如何修复它。geoJSON字符串似乎很好,在将其传递给readGeometry之前,我也尝试过对其进行解析,但结果相同 如果有比我现
var feature = new ol.Feature({
});
var view = new ol.View({
center: [0, 0],
zoom: 1
});
var client = new XMLHttpRequest();
client.open('GET', 'http://localhost:3000/extent');
client.send();
client.onreadystatechange=function(){
if (client.readyState==4 && client.status==200){
var geomstring = client.responseText;
console.log(geomstring)
var geojson = new ol.format.GeoJSON();
var geom = geojson.readGeometry(geomstring);
var size = (map.getSize());
feature.setGeometry(geom);
view.fitGeometry(
geom,
size,
{
padding: [170, 50, 30, 150],
constrainResolution: false
});
}
}
var map = new ol.Map({
layers: [raster, vector, feature],
target: 'map',
});
读取几何图形的工作方式应如下所示:
var geojson = new ol.format.GeoJSON();
var json = {"st_asgeojson":"{\"type\":\"Polygon\",\"coordinates\":[[[-2416.91312435933,6700304.87650272],[-2416.91312435933,6700339.02584392],[-2255.97853651961,6700339.02584392],[-2255.97853651961,6700304.87650272],[-2416.91312435933,6700304.87650272]]]}"};
var geom = geojson.readGeometry(json['st_asgeojson']);
console.log(geom.getArea());
你能发布一个GeoJSON的例子吗?您可能必须使用readFeature而不是readGeometry,但这取决于您的web服务返回的内容。{st_asgeojson:{\type\:\Polygon\,\coordinates\:[[[-2416.913124359336700304.87650272],-2416.913124359336700339.02584392],-2255.978536519616700339.02584392],-2255.978536519616700304.87650272],-2416.91312436700304.87650272]}}GeoJSON位似乎工作不正常,因为当我将其登录到控制台时,对象似乎是空的,非常感谢!我不知道那是一本字典。最后将其排序:var geojson=new ol.format.geojson;var json=json.parseclient.responseText;var geom=geojson.readGeometryjson['st_asgeojson'];var feature=newol.feature{};feature.setGeometrygeom;console.logfeature.getGeometry;extent.getSource.addFeaturefeature;