製品版のみの機能
マップ - シンボル シリーズ
このサンプルは、マップを作成し、主要な市の位置を地理記号シリーズで表示する方法を示します。
このサンプルは CTP 機能を使用しています。製品版では、API や動作が変更される場合があります。
このサンプルは、より大きい画面サイズのためにデザインされました。
モバイル デバイスで画面を回転、フル サイズ表示、またはその他のデバイスにメールで送信します。
このマップは、市の人口に基づいて地理記号を塗りつぶすためにカスタム マーカー テンプレートを使用します。人口最小都市はグレーの丸で描画し、人口最大都市は緑、オレンジ、または赤の丸で描画されます。
コード ビュー
クリップボードへコピー
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!-- Ignite UI for jQuery Required Combined CSS Files --> <link href="http://cdn-na.infragistics.com/igniteui/2024.1/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" /> <link href="http://cdn-na.infragistics.com/igniteui/2024.1/latest/css/structure/infragistics.css" rel="stylesheet" /> <script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.8.3.js"></script> <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script> <script src="http://code.jquery.com/ui/1.11.1/jquery-ui.min.js"></script> <!-- Ignite UI for jQuery Required Combined JavaScript Files --> <script src="http://cdn-na.infragistics.com/igniteui/2024.1/latest/js/infragistics.core.js"></script> <script src="http://cdn-na.infragistics.com/igniteui/2024.1/latest/js/infragistics.dv.js"></script> <script src="/js/map-helper.js" type="text/javascript" ></script> <style> #tooltipTable { font-family: Verdana, Arial, Helvetica, sans-serif; width: 100%; border-collapse: collapse; } #tooltipTable td, #tooltipTable th { font-size: 9px; border: 1px solid #5da7df; padding: 3px 7px 2px 7px; } #tooltipTable th { font-weight: bold; font-size: 11px; text-align: left; padding-top: 5px; padding-bottom: 4px; background-color: #5da7df; color: #ffffff; } </style> <script id="geoSymbolTooltip" type="text/x-jquery-tmpl"> <table id="tooltipTable" > <tr><th colspan="2">${item.City}, ${item.Country}</th></tr> <tr> <td>人口:</td> <td>${item.Population}</td> </tr> </table> </script> </head> <body> <script type="text/javascript"> $(function () { // load geo-locations from shapefile and simplify data structure var worldCities = []; var points = []; var shapeDataSource = new $.ig.ShapeDataSource({ shapefileSource: "/data-files/shapes/world_cities.shp", databaseSource: "/data-files/shapes/world_cities.dbf", transformRecord: function (rec) { var pointX = rec.points.item(0).item(0).x(); var pointY = rec.points.item(0).item(0).y(); var city = rec.fields.item("NAME"); var country = rec.fields.item("COUNTRY"); var population = rec.fields.item("POPULATION"); if (population > 7000) { points.push({ Latitude: pointY, Longitude: pointX, City: city, Country: country, Population: population }); } }, callback: function () { worldCities = points.sort(compareCities);; createMap(); } }); shapeDataSource.dataBind(); function compareCities(a, b) { if (a.Population > b.Population) return -1; if (a.Population < b.Population) return 1; return 0; } function createMap() { $("#map").igMap({ width: "700px", height: "500px", windowRect: { left: 0.1, top: 0.1, height: 0.7, width: 0.7 }, overviewPlusDetailPaneVisibility: "visible", overviewPlusDetailPaneBackgroundImageUri: "/images/samples/maps/world.png", backgroundContent: { type: "openStreet" }, series: [{ type: "geographicSymbol", name: "worldCities", dataSource: worldCities, longitudeMemberPath: "Longitude", latitudeMemberPath: "Latitude", showTooltip: true, tooltipTemplate: "geoSymbolTooltip", // using custom template markerType: "none", markerTemplate: { measure: function (measureInfo) { measureInfo.width = 10; measureInfo.height = 10; }, render: function (renderInfo) { var ctx = renderInfo.context; var x = renderInfo.xPosition; var y = renderInfo.yPosition; if (renderInfo.isHitTestRender) ctx.fillStyle = renderInfo.data.actualItemBrush().fill(); else ctx.fillStyle = "black"; var size = 10; var heightHalf = size / 2.0; var widthHalf = size / 2.0; if (renderInfo.isHitTestRender) { ctx.fillRect(x - widthHalf, y - heightHalf, size, size); } else { // color markers based on population of cities var pop = renderInfo.data.item()["Population"]; if (pop > 0) ctx.fillStyle = "rgba(120,120,120,0.8)"; if (pop > 100000) ctx.fillStyle = "rgba(160,200,20,0.8)"; if (pop > 1000000) ctx.fillStyle = "rgba(210,155,20,0.8)"; if (pop > 5000000) ctx.fillStyle = "rgba(210,60,20,0.8)"; if (pop > 10000000) ctx.fillStyle = "rgba(155,20,20,0.8)"; size = 3; ctx.globalAlpha = 1; ctx.strokeStyle = "rgba(20,20,20,0.36)"; ctx.beginPath(); ctx.arc(x, y, size, 0, 2.0 * Math.PI); ctx.fill(); ctx.stroke(); } } } }] }); $("#map").find(".ui-widget-content").append("<span class='copyright-notice'><a href='https://www.openstreetmap.org/copyright'>© OpenStreetMap contributors</a></span>"); }; }); </script> <div> <div id="map"></div> </div> </body> </html>