I use code as below to plot multiple geometries:
newGdf = gpd.read_file(os.path.abspath(newFile), driver='KML')
oldGdf = gpd.read_file(os.path.abspath(oldFile), driver='KML')
lonMean, LagMean = newGdf.centroid.get_coordinates().mean()
proj = geoplot.crs.Orthographic(central_longitude=lonMean, central_latitude=LagMean)
fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(18, 10.5), subplot_kw={"projection": proj})
ax.set_aspect('equal')
newPolyGdf = newGdf[newGdf['geometry'].apply(lambda x: isinstance(x, Polygon))]
newLineGdf = newGdf[newGdf.geometry.type=='LineString']
geoplot.polyplot(newPolyGdf, ax=ax, facecolor=color, zorder=2)
geoplot.polyplot(newLineGdf, ax=ax, facecolor='none', color='blue', zorder=3)
oldPolyGdf = oldGdf[oldGdf['geometry'].apply(lambda x: isinstance(x, Polygon))]
oldLineGdf = oldGdf[oldGdf.geometry.type=='LineString']
geoplot.polyplot(oldPolyGdf, ax=ax, facecolor=color, zorder=2)
geoplot.polyplot(oldLineGdf, ax=ax, facecolor='none', color='blue', zorder=3)
You can see the post plot oldGdf LineString is not correct, I think the reason is the projection is used from the newGdf, how can I let both line in correct projection?