%matplotlib inline
import matplotlib.pyplot as plt
from geographiclib.geodesic import Geodesic
lat1, lon1 = 43, -75
lat2, lon2 = 1.359, 103.989
g = Geodesic.WGS84.Inverse(lat1, lon1, lat2, lon2)
h = Geodesic.WGS84.Direct(lat1, lon1, g['azi1'], g['s12']/2)
gc = [Geodesic.WGS84.Direct(lat1, lon1, g['azi1'], i) for i in range(0,int(g['s12']),100000)]
lat = [i['lat2'] for i in gc]
lat.append(lat2)
lon = [i['lon2'] for i in gc]
lon.append(lon2)
plt.plot(lon,lat,'-');
from geojson import MultiPoint, LineString
mp =[(coors['lon2'], coors['lat2']) for coors in gc ]
f = open('new.geojson','w')
f.write(str(LineString(mp)))
f.close()
!/usr/local/bin/gist -p new.geojson
https://gist.github.com/dfef2fb6ed797b5d1421
a = []
for p in mp: a.extend([p[0],p[1],0])
%%file czml_templates.py
polyline_tpl = """
{
"polyline": {
"width":%s,
"material":{
"solidColor":{
"color":{
"rgba":[
%s,%s,%s,%s
]
}
}
},
"positions": {
"%s": %s
}, "id": "%s"
}
}
"""
czml_tpl = """
[
{
"version": "1.0",
"id": "document"
},
%s
]
"""
Overwriting czml_templates.py
from czml_templates import polyline_tpl, czml_tpl
import numpy as np
def polyline(width=1, rgba=(0,255,255,255), coorstype="cartographicDegrees", coors=[], id=""):
polyline = polyline_tpl % (width, rgba[0], rgba[1], rgba[2], rgba[3], coorstype, coors, id)
return polyline
def czml(features):
czml=czml_tpl % features
return czml
pl1 = polyline(coors=a, id='test1')
pl2 = polyline(coors=list(np.array(a)/2), id='test2')
features = str(pl1)+','+str(pl2)
polyline1 = czml(str(pl1))
polyline2 = czml(features)
from CesiumWidget import CesiumWidget
cesiumExample = CesiumWidget(width="100%", czml=polyline1)
cesiumExample
cesiumExample.czml = polyline2
from IPython.core.display import Image
Image("screen.png")