Hi,

I am looking for some ideas about running isovist analyze using cesium,

Could some one gives me some hints and start points?

here is some information about it

Hi,

I am looking for some ideas about running isovist analyze using cesium,

Could some one gives me some hints and start points?

here is some information about it

I think the easiest way could be loop around 360 degree and then find the nearest object in each direction and draw a boundry…Again for make a 3d shape we must loop around in vertical to form a geometry,

But it seems too heavy process…IS there any simpler way?

well,

Here I’ll write as I go forward in case that may be usefull and also new ideas are welcome, I am some how noob

I found the Ray which seems is exactly what I need,

https://cesiumjs.org/Cesium/Build/Documentation/Ray.html

I should now loop 360,180 for a point,

Does any one has any suggestion in case of improvement of preformance ?

Well,I go forward and get to this code

```
var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
handler.setInputAction(function(click) {
// var pickedObject = scene.pick(click.position);
// addToMessage('target', pickedObject.id.id);
var position = viewer.camera.pickEllipsoid(click.position);
var cartographicPosition = Cesium.Ellipsoid.WGS84.cartesianToCartographic(position);
var y=Cesium.Math.toDegrees(cartographicPosition.latitude);
var x=Cesium.Math.toDegrees(cartographicPosition.longitude);
var radius=100;
var segmants=10;
var origin= new Cesium.Cartesian3(x, y, 0);
var shape = [];
for (i = 0; i < segmants; i++) {
var teta=segmants*i;
var a =x+Math.cos(teta)*radius;
var b =y+Math.sin(teta)*radius;
var direction= new Cesium.Cartesian3(a, b, 0);
var ray=new Cesium.Ray(origin, direction);
var intersection = Cesium.IntersectionTests.rayEllipsoid(ray, bluePolygon);
var point = Cesium.Ray.getPoint(ray, intersection.start);
alert(point.toString());
shape.push(point.x);
alert(point.x.toString());
shape.push(point.y);
}
// shape.push(shape[0]);
// shape.push(shape[1]);
var resultPolygon = viewer.entities.add({
name : 'result',
polygon : {
hierarchy : Cesium.Cartesian3.fromDegreesArray(shape),
material : Cesium.Color.YELLOW
}
});
viewer.zoomTo(resultPolygon.position);
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
```

``

It seems to work but does not work…Can some one gives me some hints about it?

Intersection part does not work

well…finally I managed to do it…

here is its video,

https://plus.google.com/+MajidHojati/posts/MGcyct9fEVr

but I think cesium liberary lakes in intersection part…