展现成都市地铁拓扑网络,要求要美观,性能要求高;美观方面,要求连线要平滑,地图缩放的时候没有延迟情况;要求支持10万也上的用户访问;客户端有web浏览器端,手机端等;用户点击站点可以看见站点的信息,拥挤成都等信息;地铁采用双线的方式显示,使用颜色表示该路段的拥挤程度;
后台的工作需要通过KCGIS 地图平台生成逻辑点生成拓扑网络;
**
var map = L.map('map', { crs: L.CRS.EPSG3857 });var myRenderer = L.svg({ padding: 0.5 });var bounds = [[0, 0], [14.94, 20.00]];function distance(x1, y1, x2, y2) {var calX = Math.abs(x2 - x1);var calY = Math.abs(y2 - y1);var d = Math.sqrt( calX * calX + calY * calY );return d;
}function querySub(e)
{var text = "";var d = 100;var name = "";var x = e.latlng.lng;var y = e.latlng.lat;for(var i=0;i<points.length;i++){var x1 = points[i].dinates[0];var y1 = points[i].dinates[1];var dd = distance(x, y, x1, y1);if (dd <d){d = dd;name = points[i].properties.name;}}if (d < 0.15) {var popup = L.popup().setLatLng(e.latlng).setContent('当前站点是:' + name).openOn(map);}
}//每条线路为一个svg图层
var image0 = L.imageOverlay('subline0.svg', bounds, { opacity: 1, interactive: true }).on("click", querySub).addTo(map);
var image1 = L.imageOverlay('subline1.svg', bounds, { opacity: 1, interactive: true }).on("click", querySub).addTo(map);
var image2 = L.imageOverlay('subline2.svg', bounds, { opacity: 1, interactive: true }).on("click", querySub).addTo(map);
var image3 = L.imageOverlay('subline3.svg', bounds, { opacity: 1, interactive: true }).on("click", querySub).addTo(map);
var image4 = L.imageOverlay('subline4.svg', bounds, { opacity: 1, interactive: true }).on("click", querySub).addTo(map);
var image5 = L.imageOverlay('subline5.svg', bounds, { opacity: 1, interactive: true }).on("click", querySub).addTo(map);
var image6 = L.imageOverlay('subline6.svg', bounds, { opacity:1, interactive: true }).on("click", querySub).addTo(map);map.fitBounds(bounds);var mark8 = {radius: 4,fillColor: "#fff",color: "#000",weight: 1,opacity: 1,fillOpacity: 1
};
var mark4 = {radius: 4,fillColor: "#fff",color: "#000",weight: 1,opacity: 1,fillOpacity: 1,labelAnchor: [4, -4]
};function pointToLayer(feature, latlng) {var mark = L.circleMarker(latlng, mark4);if (feature.properties.t != null && feature.properties.t == 8)mark = L.circleMarker(latlng, mark8);return mark;
};
效果地址:
:8000/cdsubway/web/index2.html
:8000/cdsubway/web/index.html
更多信息请关注kcgis平台
联系方式:
QQ:823007509
网址:
本文发布于:2024-02-01 08:08:18,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170674610035104.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |