d3-v6-tip: d3.event is not defined - javascript
I am trying to add tooltip to my map when mouseOver event occurs. The goal of the mouseOver function is that it will highlights the path and also show the tip.
I am using d3-v6-tip
This is how I select my svg and calls the tip function
var svg = d3.select("#mapDiv")
.append("svg")
.attr("width", width)
.attr("height", height)
.style("background-color", "white")
.style("border", "solid 1px black")
.call(d3.zoom()
.on("zoom", function (event) {
svg.attr("transform", event.transform);
})
.scaleExtent([1, 1])
)
.append("g");
const tip = d3.tip().attr('class', 'd3-tip').html(function (event, d) {
console.log(event.target.id);
return event.target.id;
});
svg.call(tip);
This is how I draw my map:
d3.json(path).then(function (json) {
var projection = d3.geoMercator();
var features = json.features;
var fixed = features.map(function (feature) {
return turf.rewind(feature, { reverse: true });
})
var geoPath = d3.geoPath().projection(projection);
projection.fitSize([width, height], { "type": "FeatureCollection", "features": fixed })
svg.selectAll("path")
.data(fixed)
.enter()
.append("path")
.attr("d", geoPath)
.attr("id", function (d) { return d.properties.FIPS_10_; })
.style("fill", "red")
.style("stroke", "transparent")
.on("mouseover", mouseOver)
.on("mouseleave", mouseLeave)
.on("click", mouseClick)
})
How I call tip.show in my mouseOver function:
let mouseOver = function (event, d) {
var countryCode = event.target.__data__.properties.FIPS_10_;
d3.selectAll("path#" + countryCode)
.transition()
.duration(200)
.style("opacity", 1)
.style("stroke", "black")
tip.show(event, d);
}
The problem: I put a console.log in my tip declaration. When my mouse hover over it, it shows the current country name in the console(event.target.id). However, the tooltip never show up due to the error: Uncaught TypeError: d3.event is undefined.
I am not completely sure if this has to do with the library itself because the source code calls d3.event when d3.event no longer exist in d3.v6 or am I doing something wrong in my code
Also, is there a better way to create tooltip than using the library?
I downgraded my D3 version to 5 and now it worked. I think there is a problem with the D3-v6-tip library, not sure why.
I believe you're just missing the step to invoke the tip.
Check the code underneath where the page says 'If you want to load it as standalone...' :
/* Invoke the tip in the context of your visualization */
svg.call(tip)
Your event handler code otherwise seems to work fine per this adaptation:
const width = 200;
const height = 200;
const svg = d3.select("body")
.append("svg")
.attr("width", width)
.attr("height", height);
const tip = d3.tip()
.attr("class", "d3-tip")
.html((event, d) => event.target.id);
const projection = d3.geoMercator();
const mapJson = roi();
const features = mapJson.features;
const geoPath = d3.geoPath()
.projection(projection);
projection.fitSize([width, height], mapJson);
svg.selectAll("path")
.data(features)
.enter()
.append("path")
.attr("d", geoPath)
.attr("id", d => d.properties.id)
.style("fill", "green")
.style("stroke", "red")
.on("mouseover", mouseOver)
.on("mouseleave", mouseLeave)
.on("click", mouseClick)
.call(tip);
function mouseOver(event, d) {
d3.selectAll(`path#${event.target.id}`)
.transition()
.duration(200)
.style("opacity", 1)
.style("stroke", "white");
tip.show(event, d);
}
function mouseLeave(event, d) {
d3.selectAll(`path#${event.target.id}`)
.transition()
.duration(200)
.style("stroke", "red");
tip.hide()
}
function mouseClick(event, d) {
window.alert(`Selected ${d.properties.id}`);
}
<script src="https://d3js.org/d3.v6.min.js"></script>
<script src="https://unpkg.com/d3-v6-tip#1.0.6/build/d3-v6-tip.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/bumbeishvili/d3-tip-for-v6#4/d3-tip.min.css">
<script>
function roi() {
return {
"type": "FeatureCollection",
"features": [
{ "type": "Feature", "properties": { "id": "Carlow" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -6.592415, 52.708085 ], [ -6.614788, 52.654218 ], [ -6.717890, 52.633128 ], [ -6.810019, 52.481218 ], [ -6.916185, 52.446304 ], [ -6.914688, 52.590519 ], [ -6.975609, 52.653791 ], [ -6.952951, 52.705377 ], [ -7.090468, 52.732311 ], [ -7.072441, 52.797934 ], [ -7.065957, 52.822872 ], [ -6.915828, 52.856717 ], [ -6.735489, 52.884007 ], [ -6.712332, 52.924335 ], [ -6.463234, 52.893982 ], [ -6.512470, 52.826791 ], [ -6.631176, 52.831494 ], [ -6.592415, 52.708085 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Cavan" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -7.311848, 54.114105 ], [ -7.188226, 54.079548 ], [ -7.035960, 54.086530 ], [ -6.753231, 53.901916 ], [ -6.753302, 53.900348 ], [ -6.779095, 53.873842 ], [ -6.942976, 53.874982 ], [ -6.955730, 53.766893 ], [ -7.275153, 53.783851 ], [ -7.282350, 53.795394 ], [ -7.394715, 53.781713 ], [ -7.471810, 53.835936 ], [ -7.577762, 53.872702 ], [ -7.606476, 53.937257 ], [ -7.604552, 54.005160 ], [ -7.760239, 54.105127 ], [ -7.853223, 54.098144 ], [ -8.034560, 54.238796 ], [ -7.952976, 54.306628 ], [ -7.878090, 54.289172 ], [ -7.820589, 54.199180 ], [ -7.696967, 54.202529 ], [ -7.554248, 54.127999 ], [ -7.414737, 54.150800 ], [ -7.311848, 54.114105 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Clare" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -9.014420, 53.143721 ], [ -8.995325, 53.094486 ], [ -8.898707, 53.061852 ], [ -8.825673, 52.973357 ], [ -8.610278, 53.039336 ], [ -8.448392, 52.981622 ], [ -8.301399, 53.004138 ], [ -8.315365, 52.923338 ], [ -8.415403, 52.895906 ], [ -8.486797, 52.717419 ], [ -8.542089, 52.683432 ], [ -8.736394, 52.676235 ], [ -8.862510, 52.697896 ], [ -8.966396, 52.683717 ], [ -8.941957, 52.735161 ], [ -9.043064, 52.749839 ], [ -9.077478, 52.671817 ], [ -9.162482, 52.618450 ], [ -9.417494, 52.602062 ], [ -9.546959, 52.639326 ], [ -9.700864, 52.612108 ], [ -9.696375, 52.582325 ], [ -9.939203, 52.558170 ], [ -9.650845, 52.677945 ], [ -9.613081, 52.742927 ], [ -9.495800, 52.750694 ], [ -9.446422, 52.877095 ], [ -9.347524, 52.929893 ], [ -9.476420, 52.941507 ], [ -9.392484, 53.007914 ], [ -9.282471, 53.145146 ], [ -9.152507, 53.119566 ], [ -9.127497, 53.157615 ], [ -9.014420, 53.143721 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Cork" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -8.160320, 52.302731 ], [ -8.088569, 52.215518 ], [ -8.137519, 52.159086 ], [ -7.927468, 51.990147 ], [ -7.849731, 51.978747 ], [ -7.904168, 51.911271 ], [ -7.865834, 51.880134 ], [ -7.997508, 51.860682 ], [ -8.001356, 51.825127 ], [ -8.170295, 51.784300 ], [ -8.264704, 51.815152 ], [ -8.202501, 51.874006 ], [ -8.319711, 51.842370 ], [ -8.273041, 51.798194 ], [ -8.339163, 51.716254 ], [ -8.563037, 51.639302 ], [ -8.658587, 51.634029 ], [ -8.706397, 51.570686 ], [ -8.867498, 51.576243 ], [ -9.107476, 51.537340 ], [ -9.227536, 51.479839 ], [ -9.535274, 51.529003 ], [ -9.644717, 51.520382 ], [ -9.773613, 51.446564 ], [ -9.838025, 51.483188 ], [ -9.653624, 51.542897 ], [ -9.539193, 51.612083 ], [ -9.850850, 51.542897 ], [ -9.444142, 51.692384 ], [ -9.451909, 51.731502 ], [ -9.639730, 51.675426 ], [ -9.906925, 51.652056 ], [ -9.935284, 51.614292 ], [ -10.166355, 51.580447 ], [ -10.055843, 51.632105 ], [ -10.097525, 51.671223 ], [ -9.974188, 51.685402 ], [ -10.004755, 51.719318 ], [ -9.908279, 51.749600 ], [ -9.856336, 51.719175 ], [ -9.727869, 51.792636 ], [ -9.595054, 51.796698 ], [ -9.330922, 51.890181 ], [ -9.305343, 51.970553 ], [ -9.153718, 52.007676 ], [ -9.229317, 52.180890 ], [ -9.294513, 52.237036 ], [ -9.234589, 52.308431 ], [ -9.132414, 52.338500 ], [ -8.961836, 52.321185 ], [ -8.842702, 52.378330 ], [ -8.640631, 52.360160 ], [ -8.519502, 52.284704 ], [ -8.341799, 52.321969 ], [ -8.160320, 52.302731 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Donegal" } , "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -8.541947, 55.023711 ], [ -8.486370, 54.973478 ], [ -8.569735, 54.975687 ], [ -8.541947, 55.023711 ] ] ], [ [ [ -8.161674, 54.457683 ], [ -8.282019, 54.479843 ], [ -8.223093, 54.572114 ], [ -8.109161, 54.612657 ], [ -8.115787, 54.649922 ], [ -8.299190, 54.600971 ], [ -8.288075, 54.646502 ], [ -8.463070, 54.605175 ], [ -8.586978, 54.605674 ], [ -8.793609, 54.659042 ], [ -8.807504, 54.697661 ], [ -8.653100, 54.775682 ], [ -8.434142, 54.755446 ], [ -8.568595, 54.825701 ], [ -8.384194, 54.882631 ], [ -8.460292, 54.918756 ], [ -8.462999, 55.002691 ], [ -8.348639, 55.039030 ], [ -8.286365, 55.159945 ], [ -8.159750, 55.146550 ], [ -8.026366, 55.173483 ], [ -7.981405, 55.227635 ], [ -7.873601, 55.202055 ], [ -7.631913, 55.278224 ], [ -7.617520, 55.191225 ], [ -7.517482, 55.122609 ], [ -7.633623, 55.057698 ], [ -7.559165, 55.034327 ], [ -7.680864, 54.951817 ], [ -7.472522, 55.046511 ], [ -7.526959, 55.059052 ], [ -7.462476, 55.137358 ], [ -7.555816, 55.197067 ], [ -7.528028, 55.285990 ], [ -7.428631, 55.279577 ], [ -7.348116, 55.357884 ], [ -7.194710, 55.348193 ], [ -7.153597, 55.294825 ], [ -6.920745, 55.237111 ], [ -7.158585, 55.148758 ], [ -7.273871, 55.056772 ], [ -7.353103, 55.048649 ], [ -7.443024, 54.934432 ], [ -7.457987, 54.857907 ], [ -7.552467, 54.791714 ], [ -7.537362, 54.744758 ], [ -7.648658, 54.749532 ], [ -7.750619, 54.705498 ], [ -7.834412, 54.738559 ], [ -7.925259, 54.702292 ], [ -7.855289, 54.634674 ], [ -7.710647, 54.630327 ], [ -7.829211, 54.544682 ], [ -8.003280, 54.546107 ], [ -8.052729, 54.489675 ], [ -8.161674, 54.457683 ] ] ] ] } },
{ "type": "Feature", "properties": { "id": "Dublin" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -6.105263, 53.219391 ], [ -6.347948, 53.200936 ], [ -6.464161, 53.228939 ], [ -6.535199, 53.255302 ], [ -6.495512, 53.384126 ], [ -6.453473, 53.376858 ], [ -6.334767, 53.452528 ], [ -6.320516, 53.495493 ], [ -6.408085, 53.563468 ], [ -6.291089, 53.579998 ], [ -6.213638, 53.635504 ], [ -6.098637, 53.585128 ], [ -6.075836, 53.519006 ], [ -6.121936, 53.388757 ], [ -6.229171, 53.360470 ], [ -6.100276, 53.282877 ], [ -6.105263, 53.219391 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Galway" } , "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -9.780809, 53.152057 ], [ -9.654194, 53.131822 ], [ -9.654194, 53.088500 ], [ -9.830258, 53.138163 ], [ -9.780809, 53.152057 ] ] ], [ [ [ -9.630823, 53.320711 ], [ -9.648066, 53.227371 ], [ -9.744185, 53.235138 ], [ -9.630823, 53.320711 ] ] ], [ [ [ -8.020095, 53.261501 ], [ -7.956538, 53.216256 ], [ -8.068404, 53.175642 ], [ -8.301399, 53.004138 ], [ -8.448392, 52.981622 ], [ -8.610278, 53.039336 ], [ -8.825673, 52.973357 ], [ -8.898707, 53.061852 ], [ -8.995325, 53.094486 ], [ -9.014420, 53.143721 ], [ -8.903053, 53.221528 ], [ -9.051970, 53.220175 ], [ -8.936399, 53.271547 ], [ -9.525869, 53.220958 ], [ -9.622487, 53.326269 ], [ -9.550807, 53.342372 ], [ -9.649135, 53.387119 ], [ -9.774753, 53.291498 ], [ -9.908065, 53.328763 ], [ -10.071946, 53.420678 ], [ -10.198062, 53.405145 ], [ -10.093036, 53.467063 ], [ -10.130800, 53.574868 ], [ -10.014160, 53.567885 ], [ -10.056413, 53.611492 ], [ -9.669727, 53.614912 ], [ -9.610587, 53.632725 ], [ -9.409727, 53.541095 ], [ -9.265798, 53.544301 ], [ -9.203239, 53.487442 ], [ -9.117023, 53.486800 ], [ -8.983425, 53.621895 ], [ -8.814985, 53.663292 ], [ -8.664358, 53.670916 ], [ -8.611489, 53.709535 ], [ -8.438631, 53.687660 ], [ -8.263208, 53.516085 ], [ -8.242046, 53.361040 ], [ -8.152838, 53.328478 ], [ -8.129753, 53.262427 ], [ -8.020095, 53.261501 ] ] ] ] } },
{ "type": "Feature", "properties": { "id": "Kerry" } , "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -10.349188, 51.935996 ], [ -10.286415, 51.921817 ], [ -10.430843, 51.880134 ], [ -10.349188, 51.935996 ] ] ], [ [ [ -9.328215, 52.572634 ], [ -9.303134, 52.515490 ], [ -9.339544, 52.373057 ], [ -9.234589, 52.308431 ], [ -9.294513, 52.237036 ], [ -9.229317, 52.180890 ], [ -9.153718, 52.007676 ], [ -9.305343, 51.970553 ], [ -9.330922, 51.890181 ], [ -9.595054, 51.796698 ], [ -9.727869, 51.792636 ], [ -9.856336, 51.719175 ], [ -9.908279, 51.749600 ], [ -9.863034, 51.748175 ], [ -9.745824, 51.849282 ], [ -10.125812, 51.736775 ], [ -10.228059, 51.781806 ], [ -10.208607, 51.844009 ], [ -10.343630, 51.782946 ], [ -10.335864, 51.845434 ], [ -10.408612, 51.878495 ], [ -10.252499, 51.904004 ], [ -10.321970, 51.952669 ], [ -10.258056, 51.991786 ], [ -9.916972, 52.066815 ], [ -9.889184, 52.111276 ], [ -9.753021, 52.156806 ], [ -9.985303, 52.143197 ], [ -10.193074, 52.106787 ], [ -10.287484, 52.140418 ], [ -10.452504, 52.096527 ], [ -10.475803, 52.176828 ], [ -10.361372, 52.235398 ], [ -10.178040, 52.291544 ], [ -10.181959, 52.231265 ], [ -10.026415, 52.271522 ], [ -9.955804, 52.232619 ], [ -9.736419, 52.256773 ], [ -9.876928, 52.274016 ], [ -9.833607, 52.385669 ], [ -9.943620, 52.422933 ], [ -9.828049, 52.434334 ], [ -9.687469, 52.482928 ], [ -9.620278, 52.581541 ], [ -9.364197, 52.591231 ], [ -9.328215, 52.572634 ] ] ] ] } },
{ "type": "Feature", "properties": { "id": "Kildare" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -6.495512, 53.384126 ], [ -6.535199, 53.255302 ], [ -6.464161, 53.228939 ], [ -6.592771, 53.092704 ], [ -6.745464, 53.017747 ], [ -6.712332, 52.924335 ], [ -6.735489, 52.884007 ], [ -6.915828, 52.856717 ], [ -6.957939, 52.967443 ], [ -7.032896, 52.971932 ], [ -7.030687, 53.080235 ], [ -7.097237, 53.164598 ], [ -6.997626, 53.317006 ], [ -7.136140, 53.409563 ], [ -7.032112, 53.514019 ], [ -6.840586, 53.390539 ], [ -6.713757, 53.426378 ], [ -6.495512, 53.384126 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Kilkenny" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -7.072441, 52.797934 ], [ -7.090468, 52.732311 ], [ -6.952951, 52.705377 ], [ -6.975609, 52.653791 ], [ -6.914688, 52.590519 ], [ -6.916185, 52.446304 ], [ -6.975182, 52.291544 ], [ -7.191717, 52.251857 ], [ -7.338853, 52.342561 ], [ -7.400130, 52.455496 ], [ -7.386663, 52.502451 ], [ -7.454139, 52.640253 ], [ -7.649370, 52.790809 ], [ -7.559236, 52.834771 ], [ -7.414737, 52.792305 ], [ -7.284772, 52.865624 ], [ -7.181172, 52.893412 ], [ -7.065957, 52.822872 ], [ -7.072441, 52.797934 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Laois" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -7.097237, 53.164598 ], [ -7.030687, 53.080235 ], [ -7.032896, 52.971932 ], [ -6.957939, 52.967443 ], [ -6.915828, 52.856717 ], [ -7.065957, 52.822872 ], [ -7.181172, 52.893412 ], [ -7.284772, 52.865624 ], [ -7.414737, 52.792305 ], [ -7.559236, 52.834771 ], [ -7.649370, 52.790809 ], [ -7.686564, 52.851444 ], [ -7.656923, 52.939370 ], [ -7.692264, 52.982335 ], [ -7.555246, 53.100115 ], [ -7.617948, 53.144790 ], [ -7.541708, 53.181271 ], [ -7.354813, 53.202647 ], [ -7.265606, 53.140230 ], [ -7.097237, 53.164598 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Leitrim" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -8.282019, 54.479843 ], [ -8.161674, 54.457683 ], [ -7.952976, 54.306628 ], [ -8.034560, 54.238796 ], [ -7.853223, 54.098144 ], [ -7.760239, 54.105127 ], [ -7.604552, 54.005160 ], [ -7.606476, 53.937257 ], [ -7.663122, 53.937114 ], [ -7.822370, 53.819477 ], [ -7.899109, 53.815558 ], [ -8.000359, 53.926712 ], [ -8.100895, 53.953859 ], [ -8.040972, 54.077125 ], [ -8.133671, 54.101422 ], [ -8.170794, 54.102633 ], [ -8.333463, 54.185500 ], [ -8.310591, 54.272855 ], [ -8.377782, 54.348453 ], [ -8.373863, 54.468228 ], [ -8.282019, 54.479843 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Limerick" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -8.160320, 52.302731 ], [ -8.341799, 52.321969 ], [ -8.519502, 52.284704 ], [ -8.640631, 52.360160 ], [ -8.842702, 52.378330 ], [ -8.961836, 52.321185 ], [ -9.132414, 52.338500 ], [ -9.234589, 52.308431 ], [ -9.339544, 52.373057 ], [ -9.303134, 52.515490 ], [ -9.328215, 52.572634 ], [ -8.987487, 52.619305 ], [ -8.958060, 52.660702 ], [ -8.638066, 52.660702 ], [ -8.736394, 52.676235 ], [ -8.542089, 52.683432 ], [ -8.486797, 52.717419 ], [ -8.358258, 52.682648 ], [ -8.257080, 52.697682 ], [ -8.180698, 52.666545 ], [ -8.197941, 52.521333 ], [ -8.399157, 52.468464 ], [ -8.388968, 52.438751 ], [ -8.230361, 52.404265 ], [ -8.160320, 52.302731 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Longford" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -7.471810, 53.835936 ], [ -7.394715, 53.781713 ], [ -7.390725, 53.735827 ], [ -7.591442, 53.647545 ], [ -7.658348, 53.531119 ], [ -7.846454, 53.538601 ], [ -7.952620, 53.512380 ], [ -8.025938, 53.607359 ], [ -7.978912, 53.694999 ], [ -7.887424, 53.772237 ], [ -7.899109, 53.815558 ], [ -7.822370, 53.819477 ], [ -7.663122, 53.937114 ], [ -7.606476, 53.937257 ], [ -7.577762, 53.872702 ], [ -7.471810, 53.835936 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Louth" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -6.238576, 53.778721 ], [ -6.339042, 53.722788 ], [ -6.481475, 53.722788 ], [ -6.561562, 53.771453 ], [ -6.616427, 53.861516 ], [ -6.687038, 53.875481 ], [ -6.753302, 53.900348 ], [ -6.753231, 53.901916 ], [ -6.679699, 53.909469 ], [ -6.584434, 54.051902 ], [ -6.470146, 54.078835 ], [ -6.374739, 54.066366 ], [ -6.279760, 54.109901 ], [ -6.100846, 53.999603 ], [ -6.164688, 53.976802 ], [ -6.352508, 54.011502 ], [ -6.377518, 53.955711 ], [ -6.333627, 53.877049 ], [ -6.238576, 53.861801 ], [ -6.238576, 53.778721 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Mayo" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -9.138043, 54.130707 ], [ -8.963404, 54.145527 ], [ -9.027317, 54.030241 ], [ -8.913598, 54.017701 ], [ -8.835078, 53.972455 ], [ -8.661294, 54.025681 ], [ -8.590398, 53.968109 ], [ -8.682599, 53.958704 ], [ -8.608211, 53.885884 ], [ -8.690223, 53.874484 ], [ -8.696279, 53.722716 ], [ -8.814985, 53.663292 ], [ -8.983425, 53.621895 ], [ -9.117023, 53.486800 ], [ -9.203239, 53.487442 ], [ -9.265798, 53.544301 ], [ -9.409727, 53.541095 ], [ -9.610587, 53.632725 ], [ -9.669727, 53.614912 ], [ -9.774183, 53.600661 ], [ -9.915832, 53.656238 ], [ -9.912483, 53.752286 ], [ -9.651272, 53.800453 ], [ -9.554084, 53.889874 ], [ -9.764706, 53.900134 ], [ -9.905857, 53.861231 ], [ -10.066388, 53.971814 ], [ -10.259196, 53.973453 ], [ -10.189155, 54.015706 ], [ -10.100803, 54.000671 ], [ -9.974188, 54.030669 ], [ -9.966421, 53.951009 ], [ -9.838025, 53.960414 ], [ -9.993639, 54.102633 ], [ -9.899729, 54.117953 ], [ -10.012521, 54.226541 ], [ -10.010312, 54.181296 ], [ -10.129161, 54.096007 ], [ -10.055843, 54.218204 ], [ -10.109709, 54.238511 ], [ -9.995777, 54.309336 ], [ -9.880277, 54.257607 ], [ -9.805819, 54.344606 ], [ -9.382509, 54.294302 ], [ -9.341967, 54.327363 ], [ -9.211931, 54.285894 ], [ -9.224187, 54.217136 ], [ -9.159703, 54.201816 ], [ -9.138043, 54.130707 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Meath" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -6.687038, 53.875481 ], [ -6.616427, 53.861516 ], [ -6.561562, 53.771453 ], [ -6.481475, 53.722788 ], [ -6.339042, 53.722788 ], [ -6.238576, 53.778721 ], [ -6.213638, 53.635504 ], [ -6.291089, 53.579998 ], [ -6.408085, 53.563468 ], [ -6.320516, 53.495493 ], [ -6.334767, 53.452528 ], [ -6.453473, 53.376858 ], [ -6.495512, 53.384126 ], [ -6.713757, 53.426378 ], [ -6.840586, 53.390539 ], [ -7.032112, 53.514019 ], [ -6.962926, 53.639494 ], [ -7.250928, 53.711387 ], [ -7.275153, 53.783851 ], [ -6.955730, 53.766893 ], [ -6.942976, 53.874982 ], [ -6.779095, 53.873842 ], [ -6.753302, 53.900348 ], [ -6.687038, 53.875481 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Monaghan" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -6.584434, 54.051902 ], [ -6.679699, 53.909469 ], [ -6.753231, 53.901916 ], [ -7.035960, 54.086530 ], [ -7.188226, 54.079548 ], [ -7.311848, 54.114105 ], [ -7.237746, 54.203455 ], [ -7.142268, 54.227325 ], [ -7.202120, 54.297722 ], [ -7.025129, 54.416143 ], [ -6.876141, 54.345247 ], [ -6.795555, 54.211649 ], [ -6.636377, 54.172745 ], [ -6.670293, 54.070570 ], [ -6.584434, 54.051902 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Offaly" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -6.997626, 53.317006 ], [ -7.097237, 53.164598 ], [ -7.265606, 53.140230 ], [ -7.354813, 53.202647 ], [ -7.541708, 53.181271 ], [ -7.617948, 53.144790 ], [ -7.555246, 53.100115 ], [ -7.692264, 52.982335 ], [ -7.822513, 52.956256 ], [ -7.922337, 52.862560 ], [ -8.013326, 52.909729 ], [ -7.956681, 52.952907 ], [ -7.904738, 53.092491 ], [ -8.068404, 53.175642 ], [ -7.956538, 53.216256 ], [ -8.020095, 53.261501 ], [ -8.021734, 53.303326 ], [ -7.915640, 53.353416 ], [ -7.767649, 53.329048 ], [ -7.586953, 53.383770 ], [ -7.535224, 53.333751 ], [ -7.372769, 53.317719 ], [ -7.337927, 53.350709 ], [ -7.136140, 53.409563 ], [ -6.997626, 53.317006 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Roscommon" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -8.133671, 54.101422 ], [ -8.040972, 54.077125 ], [ -8.100895, 53.953859 ], [ -8.000359, 53.926712 ], [ -7.899109, 53.815558 ], [ -7.887424, 53.772237 ], [ -7.978912, 53.694999 ], [ -8.025938, 53.607359 ], [ -7.952620, 53.512380 ], [ -7.915640, 53.353416 ], [ -8.021734, 53.303326 ], [ -8.020095, 53.261501 ], [ -8.129753, 53.262427 ], [ -8.152838, 53.328478 ], [ -8.242046, 53.361040 ], [ -8.263208, 53.516085 ], [ -8.438631, 53.687660 ], [ -8.611489, 53.709535 ], [ -8.664358, 53.670916 ], [ -8.814985, 53.663292 ], [ -8.696279, 53.722716 ], [ -8.690223, 53.874484 ], [ -8.608211, 53.885884 ], [ -8.682599, 53.958704 ], [ -8.590398, 53.968109 ], [ -8.459722, 53.916024 ], [ -8.373008, 53.919088 ], [ -8.275606, 54.047627 ], [ -8.170794, 54.102633 ], [ -8.133671, 54.101422 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Sligo" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -8.373863, 54.468228 ], [ -8.377782, 54.348453 ], [ -8.310591, 54.272855 ], [ -8.333463, 54.185500 ], [ -8.170794, 54.102633 ], [ -8.275606, 54.047627 ], [ -8.373008, 53.919088 ], [ -8.459722, 53.916024 ], [ -8.590398, 53.968109 ], [ -8.661294, 54.025681 ], [ -8.835078, 53.972455 ], [ -8.913598, 54.017701 ], [ -9.027317, 54.030241 ], [ -8.963404, 54.145527 ], [ -9.138043, 54.130707 ], [ -9.057528, 54.295442 ], [ -8.930271, 54.294302 ], [ -8.827526, 54.253474 ], [ -8.661935, 54.272641 ], [ -8.583629, 54.207944 ], [ -8.508601, 54.217349 ], [ -8.626381, 54.255113 ], [ -8.681886, 54.355935 ], [ -8.490289, 54.418209 ], [ -8.469697, 54.470437 ], [ -8.373863, 54.468228 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Tipperary" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -8.013326, 52.909729 ], [ -7.922337, 52.862560 ], [ -7.822513, 52.956256 ], [ -7.692264, 52.982335 ], [ -7.656923, 52.939370 ], [ -7.686564, 52.851444 ], [ -7.649370, 52.790809 ], [ -7.454139, 52.640253 ], [ -7.386663, 52.502451 ], [ -7.400130, 52.455496 ], [ -7.338853, 52.342561 ], [ -7.545271, 52.355671 ], [ -7.760524, 52.314986 ], [ -7.722190, 52.222216 ], [ -7.944426, 52.236466 ], [ -8.088569, 52.215518 ], [ -8.160320, 52.302731 ], [ -8.230361, 52.404265 ], [ -8.388968, 52.438751 ], [ -8.399157, 52.468464 ], [ -8.197941, 52.521333 ], [ -8.180698, 52.666545 ], [ -8.257080, 52.697682 ], [ -8.358258, 52.682648 ], [ -8.486797, 52.717419 ], [ -8.415403, 52.895906 ], [ -8.315365, 52.923338 ], [ -8.301399, 53.004138 ], [ -8.068404, 53.175642 ], [ -7.904738, 53.092491 ], [ -7.956681, 52.952907 ], [ -8.013326, 52.909729 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Waterford" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -7.545271, 52.355671 ], [ -7.338853, 52.342561 ], [ -7.191717, 52.251857 ], [ -6.975182, 52.291544 ], [ -6.958651, 52.241525 ], [ -6.949175, 52.177612 ], [ -7.019714, 52.134006 ], [ -7.088615, 52.150679 ], [ -7.426921, 52.129588 ], [ -7.551398, 52.077645 ], [ -7.585243, 51.991501 ], [ -7.731951, 51.937635 ], [ -7.849731, 51.978747 ], [ -7.927468, 51.990147 ], [ -8.137519, 52.159086 ], [ -8.088569, 52.215518 ], [ -7.944426, 52.236466 ], [ -7.722190, 52.222216 ], [ -7.760524, 52.314986 ], [ -7.545271, 52.355671 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Westmeath" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -7.282350, 53.795394 ], [ -7.275153, 53.783851 ], [ -7.250928, 53.711387 ], [ -6.962926, 53.639494 ], [ -7.032112, 53.514019 ], [ -7.136140, 53.409563 ], [ -7.337927, 53.350709 ], [ -7.372769, 53.317719 ], [ -7.535224, 53.333751 ], [ -7.586953, 53.383770 ], [ -7.767649, 53.329048 ], [ -7.915640, 53.353416 ], [ -7.952620, 53.512380 ], [ -7.846454, 53.538601 ], [ -7.658348, 53.531119 ], [ -7.591442, 53.647545 ], [ -7.390725, 53.735827 ], [ -7.394715, 53.781713 ], [ -7.282350, 53.795394 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Wexford" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -6.958651, 52.241525 ], [ -6.975182, 52.291544 ], [ -6.916185, 52.446304 ], [ -6.810019, 52.481218 ], [ -6.717890, 52.633128 ], [ -6.614788, 52.654218 ], [ -6.592415, 52.708085 ], [ -6.446419, 52.698466 ], [ -6.325575, 52.799145 ], [ -6.144666, 52.770716 ], [ -6.225822, 52.648447 ], [ -6.193046, 52.562944 ], [ -6.353577, 52.408469 ], [ -6.358066, 52.344271 ], [ -6.465799, 52.377902 ], [ -6.429176, 52.293753 ], [ -6.311396, 52.240955 ], [ -6.358636, 52.174049 ], [ -6.489170, 52.190722 ], [ -6.596975, 52.169561 ], [ -6.706917, 52.217656 ], [ -6.836382, 52.216801 ], [ -6.823058, 52.174833 ], [ -6.931361, 52.122392 ], [ -6.903644, 52.201268 ], [ -6.958651, 52.241525 ] ] ] } },
{ "type": "Feature", "properties": { "id": "Wicklow" } , "geometry": { "type": "Polygon", "coordinates": [ [ [ -6.347948, 53.200936 ], [ -6.105263, 53.219391 ], [ -6.041421, 53.117928 ], [ -6.046409, 52.989887 ], [ -5.996960, 52.963738 ], [ -6.057524, 52.857358 ], [ -6.144666, 52.770716 ], [ -6.325575, 52.799145 ], [ -6.446419, 52.698466 ], [ -6.592415, 52.708085 ], [ -6.631176, 52.831494 ], [ -6.512470, 52.826791 ], [ -6.463234, 52.893982 ], [ -6.712332, 52.924335 ], [ -6.745464, 53.017747 ], [ -6.592771, 53.092704 ], [ -6.464161, 53.228939 ], [ -6.347948, 53.200936 ] ] ] } }
]
}
}
</script>
Regarding a 'better way', IMO it would depend on if you had specific use cases not covered by the library. Also, consider the amount of work already done for us by the library which they took the time to update for D3 v6.
I struggled with this too. I was importing d3 and d3-tip via NPM to use in my Next/React app.
The 'd3 is not defined' error is because d3 is not globally available on the window object. If importing d3 and d3-tip via NPM, make d3 available to the window. Put this in your code:
if (typeof window !== "undefined") { window.d3 = d3 }
Make sure you are following the new v6 API properly: calls to tip.html() and tip.show() need the event passed first before the data e.g.
function (event, d) {...}
not just d. That's why downgrading to v5 as per the OP's suggestion worked for me at first - I wasn't doing that. And that would also explain why the Tooltip was failing to position properly.
I hope that helps someone struggling like I was. I really appreciate this great little trusty, simple and elegant tooltip which I've used extensively over the years, and the efforts of the various forkers and maintainers to keep it compatible with the latest d3 versions.
Related
Creating world choropleth map with D3
I am a new D3 user, and have been killing my brain the last week trying to figure out how to create a basic world choropleth map and have it actually run! I have been trying every single available code and tutorials, but nothing seems to work! The data that I am trying to show is also included in my json, as the "Species". In the end, I would like to just have a basic choropleth where it displays the Species data, and when I hover over it simply provides the country name and the value. Any suggestions or guidance is GREATLY appreciated. Code currently using (edited to fit my information) (original found at http://bl.ocks.org/mbostock/3306362) var width = 960, height = 500; var color = d3.scale.threshold() .domain([0.02, 0.04, 0.06, 0.08, 0.10]) .range(["#f2f0f7", "#dadaeb", "#bcbddc", "#9e9ac8", "#756bb1", "#54278f"]); var path = d3.geo.path(); var svg = d3.select("body").append("svg") .attr("width", width) .attr("height", height); queue() .defer(d3.json, "World.geojson") .defer(d3.csv, "species.csv") .await(ready); function ready(error, world, species) { if (error) throw error; var rateById = {}; species.forEach(function(d) { rateById[d.ISO_3DIGIT] = +d.Species; }); svg.append("g") .attr("class", "countries") .selectAll("path") .data(topojson.feature(world, world.objects.countries).features) .enter().append("path") .attr("d", path) .style("fill", function(d) { return color(rateById[d.ISO_3DIGIT]); }); svg.append("path") .datum(topojson.mesh(world, world.objects.countries, function(a, b) { return a.ISO_3DIGIT !== b.ISO_3DIGIT; })) .attr("class", "countries") .attr("d", path); } Example of my json { "type": "FeatureCollection", "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, "features": [ { "type": "Feature", "properties": { "OBJECTID": 3, "FIPS_CNTRY": "AA", "ISO_3DIGIT": "ABW", "NAME": "Aruba", "LONG_NAME": "Aruba", "Shape_Leng": 0.698924, "Shape_Area": 0.015129, "Number_of_": 26.000000, "Species": "26" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -69.991201758254533, 12.564936161074968 ], [ -69.987234354082148, 12.559555769083488 ], [ -69.983659267461235, 12.557785153262216 ], [ -69.977896332649607, 12.558793663796507 ], [ -69.979292630850239, 12.557989954972413 ], [ -69.978672147201848, 12.556384921426968 ], [ -69.97182917607563, 12.552132010383957 ], [ -69.971315503107974, 12.549742102516007 ], [ -69.969411254325905, 12.550420641899109 ], [ -69.963384270467714, 12.546648621736495 ], [ -69.962705135733415, 12.546379327843681 ], [ -69.960937500265402, 12.54659593135716 ], [ -69.958110928376641, 12.546536564410928 ], [ -69.957436323527475, 12.545586347931589 ], [ -69.956397414109347, 12.543688773917779 ], [ -69.955672860014488, 12.537055253996755 ], [ -69.94667124708036, 12.540498614219644 ], [ -69.944165825792197, 12.536637425376853 ], [ -69.940813541711577, 12.53483021254425 ], [ -69.933964252848, 12.527834058095266 ], [ -69.928611516808019, 12.525171756371435 ], [ -69.928868055616249, 12.521762966987296 ], [ -69.926651835613711, 12.517770409676643 ], [ -69.926916956652235, 12.515210151327381 ], [ -69.924417734390943, 12.515246749238088 ], [ -69.924206257013111, 12.513279556906014 ], [ -69.918271422188354, 12.508972763881957 ], [ -69.917961121008943, 12.506630659477366 ], [ -69.909244775725824, 12.502312660001223 ], [ -69.898086666766233, 12.489711761488593 ], [ -69.895915150263988, 12.485523343527461 ], [ -69.890029430114112, 12.485061645078815 ], [ -69.887601852343607, 12.482514620253482 ], [ -69.886337637571899, 12.480468749832937 ], [ -69.886398077409353, 12.480468749832937 ], [ -69.884469747480864, 12.478347062966577 ], [ -69.883330345119305, 12.475240111242101 ], [ -69.881198167661296, 12.463264107552504 ], [ -69.87345480879236, 12.447664141786674 ], [ -69.873569250220726, 12.43877196285581 ], [ -69.871752858007994, 12.436580657671186 ], [ -69.868788957844117, 12.423137068321012 ], [ -69.865280151257934, 12.41843080543731 ], [ -69.866732954762028, 12.415024757186757 ], [ -69.870972514469941, 12.414948224880675 ], [ -69.873276234010973, 12.412573218779016 ], [ -69.88098335289942, 12.41400110746514 ], [ -69.88356542610353, 12.413048505983738 ], [ -69.884616732676079, 12.414072513635574 ], [ -69.884146571607005, 12.417217254872412 ], [ -69.887623310167612, 12.420512437399054 ], [ -69.890819430572265, 12.421990751971634 ], [ -69.895043253943015, 12.42066562162114 ], [ -69.904002309159239, 12.426742315505464 ], [ -69.905593753049232, 12.426611900318903 ], [ -69.908368229909854, 12.430709243037143 ], [ -69.911455273342199, 12.430269956593236 ], [ -69.912853240684512, 12.431570410446056 ], [ -69.91991043122141, 12.431113004461565 ], [ -69.92511200921183, 12.433772921183333 ], [ -69.9261195655655, 12.432376146342051 ], [ -69.927280545360873, 12.432524561459331 ], [ -69.927960872596202, 12.433737158742872 ], [ -69.927171945928535, 12.435858845609232 ], [ -69.924864053533213, 12.436950207086397 ], [ -69.925641417617328, 12.439117670344217 ], [ -69.932209610784923, 12.441419124492995 ], [ -69.931949854202401, 12.440304756559271 ], [ -69.932809710399795, 12.440086125973949 ], [ -69.940516829288242, 12.441873311803874 ], [ -69.941695213663195, 12.444035648926047 ], [ -69.944575071282486, 12.443960070800586 ], [ -69.949141621788385, 12.447995424149497 ], [ -69.953771352366005, 12.450386046978451 ], [ -69.957332611011168, 12.454207063105457 ], [ -69.960015535088871, 12.455209255003126 ], [ -69.960937500265402, 12.457031249992156 ], [ -69.965335846072435, 12.46140086695641 ], [ -69.968737721468642, 12.463189721028812 ], [ -69.970178961489864, 12.465870976864096 ], [ -69.971952557664395, 12.465869546042711 ], [ -69.975418925243218, 12.468608975423876 ], [ -69.974787950103803, 12.474527478560276 ], [ -69.975870370521193, 12.473966240449613 ], [ -69.976553559399235, 12.469965219619155 ], [ -69.977643847085858, 12.469150305242351 ], [ -69.978891372239048, 12.470363021236437 ], [ -69.977841854418045, 12.47226095228109 ], [ -69.990635752837704, 12.478773474716093 ], [ -69.989674448616881, 12.47935545479038 ], [ -69.990520358128038, 12.480256677103966 ], [ -69.99439775904932, 12.481073141012644 ], [ -69.995885371712518, 12.478585839265065 ], [ -69.998836756011485, 12.480469346083453 ], [ -70.000186443249731, 12.480844259055289 ], [ -70.000915646839644, 12.484424948452613 ], [ -70.010489702537711, 12.488595008552807 ], [ -70.012077451113441, 12.49105381977796 ], [ -70.009847760165997, 12.490551233652525 ], [ -70.009806275339315, 12.492042660340474 ], [ -70.017953276922185, 12.499185323343966 ], [ -70.020050763931579, 12.499186754165351 ], [ -70.020542144504361, 12.499400615645868 ], [ -70.028274059500234, 12.503120660390152 ], [ -70.029504418394197, 12.50432467454408 ], [ -70.030076026587324, 12.50544083122935 ], [ -70.030136943065486, 12.509627223017901 ], [ -70.033386826740639, 12.514538526831529 ], [ -70.036986828179579, 12.514753103273108 ], [ -70.042536974401855, 12.518800258425188 ], [ -70.043136954406918, 12.520274519753286 ], [ -70.046085357453251, 12.521554708283134 ], [ -70.050869106823825, 12.525797605375146 ], [ -70.053049444776036, 12.530033350158988 ], [ -70.056365132744645, 12.530872344782892 ], [ -70.058509111106559, 12.536482572912405 ], [ -70.063081979349874, 12.539495944782004 ], [ -70.062934040873301, 12.541902780588828 ], [ -70.062373756943316, 12.543691158020522 ], [ -70.055176973638424, 12.554270028938674 ], [ -70.055221438818307, 12.560495853800603 ], [ -70.047874331135461, 12.568862318741026 ], [ -70.045472264433442, 12.575522660942056 ], [ -70.04475784300007, 12.580821037460908 ], [ -70.04475784300007, 12.581284642472269 ], [ -70.046714544740439, 12.588581204658851 ], [ -70.050084113790831, 12.595303773650244 ], [ -70.053751349445236, 12.610625743683102 ], [ -70.058658242084221, 12.616226554112188 ], [ -70.057161450040894, 12.622090339797353 ], [ -70.052592754651869, 12.623774051431326 ], [ -70.051294803612279, 12.623705506004285 ], [ -70.049635767576603, 12.621721744562819 ], [ -70.046384453979329, 12.620525240647339 ], [ -70.041723132016898, 12.613908410344834 ], [ -70.033449649781517, 12.609635948939854 ], [ -70.03106045687457, 12.606407165158544 ], [ -70.023722171540953, 12.603497504905931 ], [ -70.017495036366824, 12.595313549280888 ], [ -70.013124227800859, 12.586606860018549 ], [ -69.99986994304345, 12.572924852300105 ], [ -69.993902921482629, 12.568243979975705 ], [ -69.991201758254533, 12.564936161074968 ] ] ] ] } }, { "type": "Feature", "properties": { "OBJECTID": 4, "FIPS_CNTRY": "AC", "ISO_3DIGIT": "ATG", "NAME": "Antigua and Barbuda", "LONG_NAME": "Antigua and Barbuda", "Shape_Leng": 2.893306, "Shape_Area": 0.037020, "Number_of_": 32.000000, "Species": "32" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -62.34320020652433, 16.932690858 And in case it would be useful, here is a snippet of my cvs: OBJECTID,ISO_3DIGIT,NAME,LONG_NAME,Species 3,ABW,Aruba,Aruba,26 4,ATG,Antigua and Barbuda,Antigua and Barbuda,32 5,ARE,United Arab Emirates,United Arab Emirates,37 6,AFG,Afghanistan,Islamic Republic of Afghanistan,33 7,DZA,Algeria,People's Democratic Republic of Algeria,68 8,AZE,Azerbaijan,Republic of Azerbaijan,38 9,ALB,Albania,Republic of Albania,57 10,ARM,Armenia,Republic of Armenia,27 Any suggestions as to what I am doing wrong would be greatly appreciated. I feel like I won't have any hair left at the end of this haha.
First, you need to decide if you want to use geojson or topojson to build your map. It looks like your map data is in geojson but you are trying to build it using topojson constructs. Second, you haven't provide a projection for your map to control it's display. Third, your color scale doesn't seem to match your data. The values are in the 10s while your scale only is defined in the hundredths. Applying these fixes starts to make a map. See example here. Note, I had to find my own GEOJson so it might not exactly match your format.
How to bindPopup multiple features properties with leaflet?
is there a way to bind multiple properties in a popup with leaflet? I'm loading in a JSON file that looks like this: { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "name": "Lagoa Stadium", "coordinate":"-22.975801, -43.217316", "venue_type": "Outdoor area", "event": [{"name":"Canoe Sprint","date_start":"2016-08-15", "date_end":"2016-08-20"}, {"name":"Rowing","date_start":"2016-08-6", "date_end":"2016-08-13"}], "link": "https://www.rio2016.com/en/venues/lagoa-stadium", "images":["http://secure.rio2016.com/sites/default/files/imagecache/360x270_maps_cities/lagoa_aereas_secao01_alexferro_05032015-9156_1.jpg", "https://upload.wikimedia.org/wikipedia/commons/6/6a/1_lagoa_rodrigo_de_freitas_rio_de_janeiro_2010.jpg","http://www.rio-de-janeiro-travel-information.com/images/marina-da-gloria-rio-de-janeiro-2016-olympics.jpg"], "capacity": "14,000", "parking": "-22.983465, -43.198912" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -43.21497917175292, -22.979493188378516 ], [ -43.21643829345703, -22.9790190701661 ], [ -43.21772575378418, -22.97870299043356 ], [ -43.217811584472656, -22.977596705547032 ], [ -43.21695327758788, -22.976411390260754 ], [ -43.2161808013916, -22.975068020367633 ], [ -43.21592330932617, -22.971828073334315 ], [ -43.216352462768555, -22.970089533152084 ], [ -43.21738243103027, -22.968667074553263 ], [ -43.21703910827637, -22.967323627688746 ], [ -43.21566581726074, -22.96558502957624 ], [ -43.21446418762207, -22.96432058054304 ], [ -43.212318420410156, -22.96337223600826 ], [ -43.21051597595215, -22.962977090489098 ], [ -43.20914268493652, -22.96313514883533 ], [ -43.2063102722168, -22.962819031958123 ], [ -43.20510864257812, -22.96305611968531 ], [ -43.204078674316406, -22.964083495032888 ], [ -43.20356369018555, -22.966138222309887 ], [ -43.20356369018555, -22.96740265434445 ], [ -43.20845603942871, -22.971828073334315 ], [ -43.207340240478516, -22.974830953706174 ], [ -43.204593658447266, -22.973803660034452 ], [ -43.201160430908196, -22.974830953706174 ], [ -43.20047378540039, -22.97609530442847 ], [ -43.20004463195801, -22.97751768485142 ], [ -43.20124626159668, -22.978623970384902 ], [ -43.202362060546875, -22.979256129480273 ], [ -43.207426071166985, -22.980441419812312 ], [ -43.214378356933594, -22.980125343407142 ], [ -43.21497917175292, -22.979493188378516 ] ] ] } } ] } As you can see, there are several properties. I'm currently using this code L.geoJson(jsonObject, { onEachFeature: function (feature, layer) { layer.bindPopup(feature.properties.name); } }).addTo(map); Is there a way to bind >1 propertie to the popup?
Use + to concatenate Strings in JavaScript. E.g. feature.properties.name + " " + feature.properties.venue_type + ...
Dashed line in Line plus bar chart NVD3
I have added a line in line plus bar chart in NVD3. but i want that added single line in dashed format. How to do it in linePlusBar chart. As shown in image Limit line I added but i want this line to be doted or dashed. Please help me out, how to do it?? As shown in above graph i want orange line to be dashed. how to do it?? <script> var chart; nv.addGraph(function() { chart = nv.models.linePlusBarChart().margin({ top : 50, right : 80, bottom : 30, left : 80 }).legendRightAxisHint(' [Using Right Axis]').color( d3.scale.category10().range()).options({ focusEnable : false }); chart.xAxis.tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) }).showMaxMin(false); chart.y2Axis.tickFormat(function(d) { return '$' + d3.format(',f')(d) }); chart.bars.forceY([ 0 ]).padData(false); chart.x2Axis.tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) }).showMaxMin(false); d3.select('#chart1 svg').datum(testdata).transition().duration(500) .call(chart); nv.utils.windowResize(chart.update); chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); }); return chart; }); </script> Data as follows: var testdata = [ { "key" : "Quantity", "bar" : true, "values" : [ [ 1136005200000, 1271000.0 ], [ 1138683600000, 1271000.0 ], [ 1141102800000, 1271000.0 ], [ 1143781200000, 0 ], [ 1146369600000, 0 ], [ 1149048000000, 0 ], [ 1151640000000, 0 ], [ 1154318400000, 0 ], [ 1156996800000, 0 ], [ 1159588800000, 3899486.0 ], [ 1162270800000, 3899486.0 ], [ 1164862800000, 3899486.0 ], [ 1167541200000, 3564700.0 ], [ 1170219600000, 3564700.0 ], [ 1172638800000, 3564700.0 ], [ 1175313600000, 2648493.0 ], [ 1177905600000, 2648493.0 ], [ 1180584000000, 2648493.0 ], [ 1183176000000, 2522993.0 ], [ 1185854400000, 2522993.0 ], [ 1188532800000, 2522993.0 ], [ 1191124800000, 2906501.0 ], [ 1193803200000, 2906501.0 ], [ 1196398800000, 2906501.0 ], [ 1199077200000, 2206761.0 ], [ 1201755600000, 2206761.0 ], [ 1204261200000, 2206761.0 ], [ 1206936000000, 2287726.0 ], [ 1209528000000, 2287726.0 ], [ 1212206400000, 2287726.0 ], [ 1214798400000, 2732646.0 ], [ 1217476800000, 2732646.0 ], [ 1220155200000, 2732646.0 ], [ 1222747200000, 2599196.0 ], [ 1225425600000, 2599196.0 ], [ 1228021200000, 2599196.0 ], [ 1230699600000, 1924387.0 ], [ 1233378000000, 1924387.0 ], [ 1235797200000, 1924387.0 ], [ 1238472000000, 1756311.0 ], [ 1241064000000, 1756311.0 ], [ 1243742400000, 1756311.0 ], [ 1246334400000, 1743470.0 ], [ 1249012800000, 1743470.0 ], [ 1251691200000, 1743470.0 ], [ 1254283200000, 1519010.0 ], [ 1256961600000, 1519010.0 ], [ 1259557200000, 1519010.0 ], [ 1262235600000, 1591444.0 ], [ 1264914000000, 1591444.0 ], [ 1267333200000, 1591444.0 ], [ 1270008000000, 1543784.0 ], [ 1272600000000, 1543784.0 ], [ 1275278400000, 1543784.0 ], [ 1277870400000, 1309915.0 ], [ 1280548800000, 1309915.0 ], [ 1283227200000, 1309915.0 ], [ 1285819200000, 1331875.0 ], [ 1288497600000, 1331875.0 ], [ 1291093200000, 1331875.0 ], [ 1293771600000, 1331875.0 ], [ 1296450000000, 1154695.0 ], [ 1298869200000, 1154695.0 ], [ 1301544000000, 1194025.0 ], [ 1304136000000, 1194025.0 ], [ 1306814400000, 1194025.0 ], [ 1309406400000, 1194025.0 ], [ 1312084800000, 1194025.0 ], [ 1314763200000, 1244525.0 ], [ 1317355200000, 475000.0 ], [ 1320033600000, 475000.0 ], [ 1322629200000, 475000.0 ], [ 1325307600000, 690033.0 ], [ 1327986000000, 690033.0 ], [ 1330491600000, 690033.0 ], [ 1333166400000, 514733.0 ], [ 1335758400000, 514733.0 ] ] }, { "key" : "Limit", "values" : [ [ 1136005200000, 500 ], [ 1335758400000, 500 ] ], classed : 'dashed' }, { "key" : "Price", "values" : [ [ 1136005200000, 71.89 ], [ 1138683600000, 75.51 ], [ 1141102800000, 68.49 ], [ 1143781200000, 62.72 ], [ 1146369600000, 70.39 ], [ 1149048000000, 59.77 ], [ 1151640000000, 57.27 ], [ 1154318400000, 67.96 ], [ 1156996800000, 67.85 ], [ 1159588800000, 76.98 ], [ 1162270800000, 81.08 ], [ 1164862800000, 91.66 ], [ 1167541200000, 84.84 ], [ 1170219600000, 85.73 ], [ 1172638800000, 84.61 ], [ 1175313600000, 92.91 ], [ 1177905600000, 99.8 ], [ 1180584000000, 121.191 ], [ 1183176000000, 122.04 ], [ 1185854400000, 131.76 ], [ 1188532800000, 138.48 ], [ 1191124800000, 153.47 ], [ 1193803200000, 189.95 ], [ 1196398800000, 182.22 ], [ 1199077200000, 198.08 ], [ 1201755600000, 135.36 ], [ 1204261200000, 125.02 ], [ 1206936000000, 143.5 ], [ 1209528000000, 173.95 ], [ 1212206400000, 188.75 ], [ 1214798400000, 167.44 ], [ 1217476800000, 158.95 ], [ 1220155200000, 169.53 ], [ 1222747200000, 113.66 ], [ 1225425600000, 107.59 ], [ 1228021200000, 92.67 ], [ 1230699600000, 85.35 ], [ 1233378000000, 90.13 ], [ 1235797200000, 89.31 ], [ 1238472000000, 105.12 ], [ 1241064000000, 125.83 ], [ 1243742400000, 135.81 ], [ 1246334400000, 142.43 ], [ 1249012800000, 163.39 ], [ 1251691200000, 168.21 ], [ 1254283200000, 185.35 ], [ 1256961600000, 188.5 ], [ 1259557200000, 199.91 ], [ 1262235600000, 210.732 ], [ 1264914000000, 192.063 ], [ 1267333200000, 204.62 ], [ 1270008000000, 235.0 ], [ 1272600000000, 261.09 ], [ 1275278400000, 256.88 ], [ 1277870400000, 251.53 ], [ 1280548800000, 257.25 ], [ 1283227200000, 243.1 ], [ 1285819200000, 283.75 ], [ 1288497600000, 300.98 ], [ 1291093200000, 311.15 ], [ 1293771600000, 322.56 ], [ 1296450000000, 339.32 ], [ 1298869200000, 353.21 ], [ 1301544000000, 348.5075 ], [ 1304136000000, 350.13 ], [ 1306814400000, 347.83 ], [ 1309406400000, 335.67 ], [ 1312084800000, 390.48 ], [ 1314763200000, 384.83 ], [ 1317355200000, 381.32 ], [ 1320033600000, 404.78 ], [ 1322629200000, 382.2 ], [ 1325307600000, 405.0 ], [ 1327986000000, 456.48 ], [ 1330491600000, 542.44 ], [ 1333166400000, 599.55 ], [ 1335758400000, 583.98 ] ] } ]
You can do this with CSS. For instance if you wanted the 2nd line dashed: <style> .nv-series-1>path { stroke-dasharray: 3,3; } </style>
[Leaflet]How to change Map and its Border?
Good Evening too Everyone! I have a website that has a Leaflet Map that is focused on an area and that area is bordered.The bordered area is editable and whats outside of that area is the whole world which is not editable. If you where not cleared here is sample. It is a Leaflet Map that is focused on an area and that area is bordered. and the code for that is here CODE <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"> </script> <script src="http://leaflet.github.io/Leaflet.draw/leaflet.draw.js"> </script> <script> // credits: https://github.com/turban/Leaflet.Mask L.Mask = L.Polygon.extend({ options: { stroke: false, color: '#333', fillOpacity: 0.5, clickable: true, outerBounds: new L.LatLngBounds([-90, -360], [90, 360]) }, initialize: function (latLngs, options) { var outerBoundsLatLngs = [ this.options.outerBounds.getSouthWest(), this.options.outerBounds.getNorthWest(), this.options.outerBounds.getNorthEast(), this.options.outerBounds.getSouthEast() ]; L.Polygon.prototype.initialize.call(this, [outerBoundsLatLngs, latLngs], options); }, }); L.mask = function (latLngs, options) { return new L.Mask(latLngs, options); }; // Polygon created with http://geojson.io/ var france = { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 121.0207986831665, 14.71238001066067 ], [ 121.02015495300293, 14.71200643586981 ], [ 121.01968288421631, 14.712338502382146 ], [ 121.01908206939697, 14.712421518931281 ], [ 121.0184383392334, 14.712172469189156 ], [ 121.0180950164795, 14.711715877256967 ], [ 121.01775169372559, 14.71113475887066 ], [ 121.01766586303711, 14.710512130310955 ], [ 121.01783752441405, 14.709681956134785 ], [ 121.01818084716797, 14.708810269851188 ], [ 121.01886749267578, 14.707648016057705 ], [ 121.01895332336426, 14.70611217119577 ], [ 121.01818084716797, 14.705198961020216 ], [ 121.01792335510252, 14.704742354499942 ], [ 121.01783752441405, 14.704161217547579 ], [ 121.01818084716797, 14.703663098928693 ], [ 121.01818084716797, 14.703497059136536 ], [ 121.0185670852661, 14.703663098928693 ], [ 121.01912498474121, 14.703331019218112 ], [ 121.01989746093749, 14.703538569096404 ], [ 121.02054119110106, 14.70370460885701 ], [ 121.02161407470703, 14.703912158380186 ], [ 121.0215711593628, 14.70436876663671 ], [ 121.02178573608397, 14.704410276430858 ], [ 121.02195739746092, 14.703497059136536 ], [ 121.02230072021484, 14.702417797409819 ], [ 121.02380275726317, 14.702293266867338 ], [ 121.02569103240967, 14.702168736253803 ], [ 121.02646350860594, 14.701878164546082 ], [ 121.02706432342528, 14.700757384337317 ], [ 121.02805137634277, 14.700259257953755 ], [ 121.02899551391602, 14.699179980225122 ], [ 121.02981090545653, 14.699179980225122 ], [ 121.03191375732423, 14.699138469436718 ], [ 121.03272914886475, 14.699076203239365 ], [ 121.03275060653685, 14.699449800157279 ], [ 121.03339433670043, 14.69963659837658 ], [ 121.03414535522461, 14.699595087674995 ], [ 121.03498220443726, 14.69976113043405 ], [ 121.03519678115845, 14.69976113043405 ], [ 121.03528261184691, 14.69984415176623 ], [ 121.03601217269896, 14.699449800157279 ], [ 121.03624820709227, 14.699179980225122 ], [ 121.03901624679565, 14.69996868370533 ], [ 121.03953123092651, 14.699512066248136 ], [ 121.0398530960083, 14.699366778675191 ], [ 121.04068994522093, 14.699781885770053 ], [ 121.04114055633545, 14.699532821607814 ], [ 121.0413122177124, 14.699283757161554 ], [ 121.04171991348267, 14.699408289420186 ], [ 121.0417413711548, 14.699574332321244 ], [ 121.04339361190797, 14.700487566020588 ], [ 121.0443377494812, 14.699532821607814 ], [ 121.04448795318604, 14.699449800157279 ], [ 121.04633331298827, 14.700549831815577 ], [ 121.04828596115112, 14.699449800157279 ], [ 121.04929447174072, 14.700051704958621 ], [ 121.04968070983888, 14.700591342335706 ], [ 121.04944467544556, 14.70121399919081 ], [ 121.04987382888793, 14.702625348156174 ], [ 121.0497236251831, 14.702791388611221 ], [ 121.04920864105225, 14.70277063356125 ], [ 121.0489296913147, 14.702293266867338 ], [ 121.04762077331542, 14.70254232788131 ], [ 121.04611873626708, 14.703642343961583 ], [ 121.0454750061035, 14.704804619081676 ], [ 121.04521751403809, 14.704991412720306 ], [ 121.04508876800537, 14.705219715839354 ], [ 121.04195594787598, 14.705240470656518 ], [ 121.0413122177124, 14.707212169289635 ], [ 121.04124784469603, 14.707648016057705 ], [ 121.03998184204102, 14.708208389195038 ], [ 121.03970289230347, 14.708104616500359 ], [ 121.03871583938597, 14.708540461486441 ], [ 121.0380506515503, 14.709308376725264 ], [ 121.03729963302611, 14.709183850113313 ], [ 121.03691339492798, 14.708976305602194 ], [ 121.03669881820677, 14.70910083233254 ], [ 121.03644132614136, 14.70910083233254 ], [ 121.03607654571533, 14.709453657682731 ], [ 121.03358745574951, 14.709744219307547 ], [ 121.03341579437256, 14.710408358711632 ], [ 121.0334587097168, 14.710532884624905 ], [ 121.03257894515991, 14.710740427655768 ], [ 121.03169918060301, 14.710761181948001 ], [ 121.03107690811157, 14.71049137599503 ], [ 121.03081941604613, 14.710636656165004 ], [ 121.0309910774231, 14.711363055564133 ], [ 121.03090524673463, 14.711757385653923 ], [ 121.03021860122679, 14.71238001066067 ], [ 121.03002548217773, 14.713210174572755 ], [ 121.0294461250305, 14.714164859166916 ], [ 121.02940320968627, 14.714621445974403 ], [ 121.02946758270264, 14.714808231211153 ], [ 121.02918863296509, 14.715327078251933 ], [ 121.02910280227661, 14.715513862884555 ], [ 121.02882385253906, 14.715700647357233 ], [ 121.0284376144409, 14.715742154996123 ], [ 121.02777242660522, 14.71607421582282 ], [ 121.02704286575317, 14.71621949227558 ], [ 121.02564811706543, 14.716862858260502 ], [ 121.0254120826721, 14.71694587308808 ], [ 121.02513313293456, 14.716904365678229 ], [ 121.02459669113159, 14.71644778364871 ], [ 121.02384567260741, 14.716800597119072 ], [ 121.02365255355836, 14.716759089681588 ], [ 121.02330923080444, 14.716364768631571 ], [ 121.02230072021484, 14.715887431669993 ], [ 121.02191448211669, 14.715534616722733 ], [ 121.0215711593628, 14.712919617562784 ], [ 121.02139949798585, 14.712712076604523 ], [ 121.02120637893677, 14.71252528957328 ], [ 121.0207986831665, 14.71238001066067 ] ] ] } } ] }; var map = new L.Map('map'); var osmUrl='http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'; var osmAttrib='Map data © OpenStreetMap contributors'; var osm = new L.TileLayer(osmUrl, {minZoom: 15, maxZoom: 18, attribution: osmAttrib}); map.addLayer(osm); map.setView([14.7079279,121.0315007],15); // transform geojson coordinates into an array of L.LatLng var coordinates = france.features[0].geometry.coordinates[0]; var latLngs = []; for (i=0; i<coordinates.length; i++) { latLngs.push(new L.LatLng(coordinates[i][1], coordinates[i][0])); } L.mask(latLngs).addTo(map); var layerpoly = new L.geoJson(france.features,myStyle).addTo(map); var myStyle = { "color": "#ff7800", "weight": 5, "opacity": 0.001, }; </script> Now I have a little code below and that codes purpose is to generate a border of an another map. LAT/LONG of the 2nd Map: 14.7180247,121.0502252 Here is the code for the border of the 2nd Map CODE { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 121.04564666748045, 14.730808905988164 ], [ 121.04556083679198, 14.729376986829836 ], [ 121.04515314102171, 14.729376986829836 ], [ 121.04483127593993, 14.729127956450599 ], [ 121.0447883605957, 14.727218714090242 ], [ 121.04315757751465, 14.726803659190255 ], [ 121.04324340820312, 14.726222581002583 ], [ 121.04485273361206, 14.726720648115412 ], [ 121.04867219924928, 14.727197961364011 ], [ 121.04860782623291, 14.720868287675927 ], [ 121.04712724685668, 14.720951300978989 ], [ 121.04708433151245, 14.719457056689269 ], [ 121.04712724685668, 14.718917465957539 ], [ 121.04755640029907, 14.718232598875604 ], [ 121.04815721511841, 14.718792944829868 ], [ 121.04913353919983, 14.717682628298446 ], [ 121.05102181434631, 14.719311782392825 ], [ 121.05281352996825, 14.717039264731355 ], [ 121.05459451675416, 14.718481641699666 ], [ 121.05769515037538, 14.714445037548428 ], [ 121.05461597442627, 14.711944173342486 ], [ 121.05950832366945, 14.706081039093599 ], [ 121.05897188186644, 14.7055621700703 ], [ 121.05849981307982, 14.70578009521028 ], [ 121.0579526424408, 14.705302735096184 ], [ 121.0577917098999, 14.705167828787806 ], [ 121.05709433555603, 14.70540650912283 ], [ 121.05606436729431, 14.70654802016014 ], [ 121.05544209480286, 14.70749235659759 ], [ 121.0555064678192, 14.707824429978333 ], [ 121.054927110672, 14.708540461486441 ], [ 121.05369329452513, 14.708696120199113 ], [ 121.05327486991882, 14.70891404221037 ], [ 121.05248093605042, 14.709080077882422 ], [ 121.05218052864075, 14.709557429735995 ], [ 121.05213761329652, 14.709692333331473 ], [ 121.05172991752623, 14.709412148847598 ], [ 121.05132222175597, 14.709723464918598 ], [ 121.05082869529724, 14.710532884624905 ], [ 121.0497236251831, 14.710325341396656 ], [ 121.04926228523253, 14.710460244517469 ], [ 121.04888677597046, 14.710180061019438 ], [ 121.04822158813475, 14.709671578937602 ], [ 121.04772806167603, 14.710014026184215 ], [ 121.04685902595521, 14.709982894638525 ], [ 121.04612946510314, 14.710045157725437 ], [ 121.04605436325075, 14.710211192536972 ], [ 121.04620456695555, 14.710615901860939 ], [ 121.04678392410278, 14.710916839076834 ], [ 121.04711651802063, 14.71135267844687 ], [ 121.04681611061095, 14.711985681695994 ], [ 121.04615092277527, 14.71256679781626 ], [ 121.04567885398863, 14.712857355296048 ], [ 121.04526042938232, 14.712940371647761 ], [ 121.04483127593993, 14.712784715962366 ], [ 121.04371547698976, 14.712037567126806 ], [ 121.04352235794067, 14.712016812955968 ], [ 121.04323267936708, 14.712317748239931 ], [ 121.04296445846558, 14.712763961862594 ], [ 121.0429000854492, 14.713013010929627 ], [ 121.04325413703918, 14.713625255344366 ], [ 121.04298591613768, 14.714465791488294 ], [ 121.04295372962952, 14.714943131560467 ], [ 121.04322195053099, 14.715347832107897 ], [ 121.04357600212097, 14.715596878225487 ], [ 121.04401588439941, 14.715783662627086 ], [ 121.0443377494812, 14.715939316172935 ], [ 121.04429483413696, 14.716115723390619 ], [ 121.04398369789122, 14.71654117550522 ], [ 121.04397296905518, 14.716873235115676 ], [ 121.04389786720276, 14.71720529422065 ], [ 121.04364037513733, 14.718253352455127 ], [ 121.04346871376036, 14.71875143777152 ], [ 121.04325413703918, 14.718803321593224 ], [ 121.04286789894103, 14.718595786232333 ], [ 121.04257822036742, 14.718377873890866 ], [ 121.04224562644958, 14.718346743538586 ], [ 121.04183793067932, 14.718429757801436 ], [ 121.04144096374512, 14.718917465957539 ], [ 121.04116201400757, 14.719073117267152 ], [ 121.04107618331909, 14.719560823984638 ], [ 121.04078650474548, 14.720214556810097 ], [ 121.04055047035217, 14.721283353875215 ], [ 121.04040026664732, 14.721771055649866 ], [ 121.04033589363098, 14.721905951692825 ], [ 121.04169845581053, 14.722227626535446 ], [ 121.04141950607301, 14.723846370153696 ], [ 121.04120492935179, 14.725734889185244 ], [ 121.04133367538451, 14.726471614701252 ], [ 121.04179501533508, 14.72843274513597 ], [ 121.04243874549866, 14.728961936039699 ], [ 121.04518532752991, 14.730757025023513 ], [ 121.04564666748045, 14.730808905988164 ] ] ] } } ] } The output of 2nd code above must be the picture in the link above The 1st Code and the 2nd Code above has the same output but diff area and border shape. Now my question is if i press button area 1 the map will go to area 1 with border and if i press button area 2 it will go to area 2 with border. Simple Question: change map area and border during button click
Depending on how memory concious you want to be, I see two options: Draw both polygons on the map, and then map.setView() to either area based on the button clicked. or, draw one polygon, call map.setView() to the relevant area and remove the other area poly using map.removeLayer() Some sample jquery: $('#buttonArea1,#buttonArea2').click(function(){ // Add/remove the relevant poly, based on the button pressed if(this.id == 'buttonArea1') { var polygon = L.polygon(poly[1]).addTo(map); map.removeLayer(poly[2]); }else{ var polygon = L.polygon(poly[2]).addTo(map); map.removeLayer(poly[1]); } // Move the map view to the specified area map.setView(mapView[this.id]); }); Of course, mapView and poly are both arrays holding the coords and polygon, respectively.
[Leaflet]How to remove unwanted borders in map?
Good Morning to all I just want to share my little problem with this,There is an annoying border shaped triangle in the middle of the map you can take a look in it if you want. http://i57.tinypic.com/11lju3n.jpg Here is my code </script> <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"> </script> <script src="http://leaflet.github.io/Leaflet.draw/leaflet.draw.js"> </script> <script> // credits: https://github.com/turban/Leaflet.Mask L.Mask = L.Polygon.extend({ options: { stroke: false, color: '#333', fillOpacity: 0.5, clickable: true, outerBounds: new L.LatLngBounds([-90, -360], [90, 360]) }, initialize: function (latLngs, options) { var outerBoundsLatLngs = [ this.options.outerBounds.getSouthWest(), this.options.outerBounds.getNorthWest(), this.options.outerBounds.getNorthEast(), this.options.outerBounds.getSouthEast() ]; L.Polygon.prototype.initialize.call(this, [outerBoundsLatLngs, latLngs], options); }, }); L.mask = function (latLngs, options) { return new L.Mask(latLngs, options); }; var sanbartolome = { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 121.0207986831665, 14.71238001066067 ], [ 121.02015495300293, 14.71200643586981 ], [ 121.01968288421631, 14.712338502382146 ], [ 121.01908206939697, 14.712421518931281 ], [ 121.0184383392334, 14.712172469189156 ], [ 121.0180950164795, 14.711715877256967 ], [ 121.01775169372559, 14.71113475887066 ], [ 121.01766586303711, 14.710512130310955 ], [ 121.01783752441405, 14.709681956134785 ], [ 121.01818084716797, 14.708810269851188 ], [ 121.01886749267578, 14.707648016057705 ], [ 121.01895332336426, 14.70611217119577 ], [ 121.01818084716797, 14.705198961020216 ], [ 121.01792335510252, 14.704742354499942 ], [ 121.01783752441405, 14.704161217547579 ], [ 121.01818084716797, 14.703663098928693 ], [ 121.01818084716797, 14.703497059136536 ], [ 121.0185670852661, 14.703663098928693 ], [ 121.01912498474121, 14.703331019218112 ], [ 121.01989746093749, 14.703538569096404 ], [ 121.02054119110106, 14.70370460885701 ], [ 121.02161407470703, 14.703912158380186 ], [ 121.0215711593628, 14.70436876663671 ], [ 121.02178573608397, 14.704410276430858 ], [ 121.02195739746092, 14.703497059136536 ], [ 121.02230072021484, 14.702417797409819 ], [ 121.02380275726317, 14.702293266867338 ], [ 121.02569103240967, 14.702168736253803 ], [ 121.02646350860594, 14.701878164546082 ], [ 121.02706432342528, 14.700757384337317 ], [ 121.02805137634277, 14.700259257953755 ], [ 121.02899551391602, 14.699179980225122 ], [ 121.02981090545653, 14.699179980225122 ], [ 121.03191375732423, 14.699138469436718 ], [ 121.03272914886475, 14.699076203239365 ], [ 121.03275060653685, 14.699449800157279 ], [ 121.03339433670043, 14.69963659837658 ], [ 121.03414535522461, 14.699595087674995 ], [ 121.03498220443726, 14.69976113043405 ], [ 121.03519678115845, 14.69976113043405 ], [ 121.03528261184691, 14.69984415176623 ], [ 121.03601217269896, 14.699449800157279 ], [ 121.03624820709227, 14.699179980225122 ], [ 121.03901624679565, 14.69996868370533 ], [ 121.03953123092651, 14.699512066248136 ], [ 121.0398530960083, 14.699366778675191 ], [ 121.04068994522093, 14.699781885770053 ], [ 121.04114055633545, 14.699532821607814 ], [ 121.0413122177124, 14.699283757161554 ], [ 121.04171991348267, 14.699408289420186 ], [ 121.0417413711548, 14.699574332321244 ], [ 121.04339361190797, 14.700487566020588 ], [ 121.0443377494812, 14.699532821607814 ], [ 121.04448795318604, 14.699449800157279 ], [ 121.04633331298827, 14.700549831815577 ], [ 121.04828596115112, 14.699449800157279 ], [ 121.04929447174072, 14.700051704958621 ], [ 121.04968070983888, 14.700591342335706 ], [ 121.04944467544556, 14.70121399919081 ], [ 121.04987382888793, 14.702625348156174 ], [ 121.0497236251831, 14.702791388611221 ], [ 121.04920864105225, 14.70277063356125 ], [ 121.0489296913147, 14.702293266867338 ], [ 121.04762077331542, 14.70254232788131 ], [ 121.04611873626708, 14.703642343961583 ], [ 121.0454750061035, 14.704804619081676 ], [ 121.04521751403809, 14.704991412720306 ], [ 121.04508876800537, 14.705219715839354 ], [ 121.04195594787598, 14.705240470656518 ], [ 121.0413122177124, 14.707212169289635 ], [ 121.04124784469603, 14.707648016057705 ], [ 121.03998184204102, 14.708208389195038 ], [ 121.03970289230347, 14.708104616500359 ], [ 121.03871583938597, 14.708540461486441 ], [ 121.0380506515503, 14.709308376725264 ], [ 121.03729963302611, 14.709183850113313 ], [ 121.03691339492798, 14.708976305602194 ], [ 121.03669881820677, 14.70910083233254 ], [ 121.03644132614136, 14.70910083233254 ], [ 121.03607654571533, 14.709453657682731 ], [ 121.03358745574951, 14.709744219307547 ], [ 121.03341579437256, 14.710408358711632 ], [ 121.0334587097168, 14.710532884624905 ], [ 121.03257894515991, 14.710740427655768 ], [ 121.03169918060301, 14.710761181948001 ], [ 121.03107690811157, 14.71049137599503 ], [ 121.03081941604613, 14.710636656165004 ], [ 121.0309910774231, 14.711363055564133 ], [ 121.03090524673463, 14.711757385653923 ], [ 121.03021860122679, 14.71238001066067 ], [ 121.03002548217773, 14.713210174572755 ], [ 121.0294461250305, 14.714164859166916 ], [ 121.02940320968627, 14.714621445974403 ], [ 121.02946758270264, 14.714808231211153 ], [ 121.02918863296509, 14.715327078251933 ], [ 121.02910280227661, 14.715513862884555 ], [ 121.02882385253906, 14.715700647357233 ], [ 121.0284376144409, 14.715742154996123 ], [ 121.02777242660522, 14.71607421582282 ], [ 121.02704286575317, 14.71621949227558 ], [ 121.02564811706543, 14.716862858260502 ], [ 121.0254120826721, 14.71694587308808 ], [ 121.02513313293456, 14.716904365678229 ], [ 121.02459669113159, 14.71644778364871 ], [ 121.02384567260741, 14.716800597119072 ], [ 121.02365255355836, 14.716759089681588 ], [ 121.02330923080444, 14.716364768631571 ], [ 121.02230072021484, 14.715887431669993 ], [ 121.02191448211669, 14.715534616722733 ], [ 121.0215711593628, 14.712919617562784 ], [ 121.02139949798585, 14.712712076604523 ], [ 121.02120637893677, 14.71252528957328 ], [ 121.0207986831665, 14.71238001066067 ] ] ] } } ] }; var santamonoica = { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 121.04564666748045, 14.730808905988164 ], [ 121.04556083679198, 14.729376986829836 ], [ 121.04515314102171, 14.729376986829836 ], [ 121.04483127593993, 14.729127956450599 ], [ 121.0447883605957, 14.727218714090242 ], [ 121.04315757751465, 14.726803659190255 ], [ 121.04324340820312, 14.726222581002583 ], [ 121.04485273361206, 14.726720648115412 ], [ 121.04867219924928, 14.727197961364011 ], [ 121.04860782623291, 14.720868287675927 ], [ 121.04712724685668, 14.720951300978989 ], [ 121.04708433151245, 14.719457056689269 ], [ 121.04712724685668, 14.718917465957539 ], [ 121.04755640029907, 14.718232598875604 ], [ 121.04815721511841, 14.718792944829868 ], [ 121.04913353919983, 14.717682628298446 ], [ 121.05102181434631, 14.719311782392825 ], [ 121.05281352996825, 14.717039264731355 ], [ 121.05459451675416, 14.718481641699666 ], [ 121.05769515037538, 14.714445037548428 ], [ 121.05461597442627, 14.711944173342486 ], [ 121.05950832366945, 14.706081039093599 ], [ 121.05897188186644, 14.7055621700703 ], [ 121.05849981307982, 14.70578009521028 ], [ 121.0579526424408, 14.705302735096184 ], [ 121.0577917098999, 14.705167828787806 ], [ 121.05709433555603, 14.70540650912283 ], [ 121.05606436729431, 14.70654802016014 ], [ 121.05544209480286, 14.70749235659759 ], [ 121.0555064678192, 14.707824429978333 ], [ 121.054927110672, 14.708540461486441 ], [ 121.05369329452513, 14.708696120199113 ], [ 121.05327486991882, 14.70891404221037 ], [ 121.05248093605042, 14.709080077882422 ], [ 121.05218052864075, 14.709557429735995 ], [ 121.05213761329652, 14.709692333331473 ], [ 121.05172991752623, 14.709412148847598 ], [ 121.05132222175597, 14.709723464918598 ], [ 121.05082869529724, 14.710532884624905 ], [ 121.0497236251831, 14.710325341396656 ], [ 121.04926228523253, 14.710460244517469 ], [ 121.04888677597046, 14.710180061019438 ], [ 121.04822158813475, 14.709671578937602 ], [ 121.04772806167603, 14.710014026184215 ], [ 121.04685902595521, 14.709982894638525 ], [ 121.04612946510314, 14.710045157725437 ], [ 121.04605436325075, 14.710211192536972 ], [ 121.04620456695555, 14.710615901860939 ], [ 121.04678392410278, 14.710916839076834 ], [ 121.04711651802063, 14.71135267844687 ], [ 121.04681611061095, 14.711985681695994 ], [ 121.04615092277527, 14.71256679781626 ], [ 121.04567885398863, 14.712857355296048 ], [ 121.04526042938232, 14.712940371647761 ], [ 121.04483127593993, 14.712784715962366 ], [ 121.04371547698976, 14.712037567126806 ], [ 121.04352235794067, 14.712016812955968 ], [ 121.04323267936708, 14.712317748239931 ], [ 121.04296445846558, 14.712763961862594 ], [ 121.0429000854492, 14.713013010929627 ], [ 121.04325413703918, 14.713625255344366 ], [ 121.04298591613768, 14.714465791488294 ], [ 121.04295372962952, 14.714943131560467 ], [ 121.04322195053099, 14.715347832107897 ], [ 121.04357600212097, 14.715596878225487 ], [ 121.04401588439941, 14.715783662627086 ], [ 121.0443377494812, 14.715939316172935 ], [ 121.04429483413696, 14.716115723390619 ], [ 121.04398369789122, 14.71654117550522 ], [ 121.04397296905518, 14.716873235115676 ], [ 121.04389786720276, 14.71720529422065 ], [ 121.04364037513733, 14.718253352455127 ], [ 121.04346871376036, 14.71875143777152 ], [ 121.04325413703918, 14.718803321593224 ], [ 121.04286789894103, 14.718595786232333 ], [ 121.04257822036742, 14.718377873890866 ], [ 121.04224562644958, 14.718346743538586 ], [ 121.04183793067932, 14.718429757801436 ], [ 121.04144096374512, 14.718917465957539 ], [ 121.04116201400757, 14.719073117267152 ], [ 121.04107618331909, 14.719560823984638 ], [ 121.04078650474548, 14.720214556810097 ], [ 121.04055047035217, 14.721283353875215 ], [ 121.04040026664732, 14.721771055649866 ], [ 121.04033589363098, 14.721905951692825 ], [ 121.04169845581053, 14.722227626535446 ], [ 121.04141950607301, 14.723846370153696 ], [ 121.04120492935179, 14.725734889185244 ], [ 121.04133367538451, 14.726471614701252 ], [ 121.04179501533508, 14.72843274513597 ], [ 121.04243874549866, 14.728961936039699 ], [ 121.04518532752991, 14.730757025023513 ], [ 121.04564666748045, 14.730808905988164 ] ] ] } } ] }; var map = new L.Map('map'); var osmUrl='http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'; var osmAttrib='Map data © OpenStreetMap contributors'; var osm = new L.TileLayer(osmUrl, {minZoom: 15, maxZoom: 18, attribution: osmAttrib}); map.addLayer(osm); map.setView([14.7053533,121.031448],15); var coordinates = sanbartolome.features[0].geometry.coordinates[0]; var coordinates1 = santamonoica.features[0].geometry.coordinates[0]; var coordinates2 = sanagustin.features[0].geometry.coordinates[0]; var latLngs = []; for (i=0; i<coordinates.length; i++) { latLngs.push(new L.LatLng(coordinates[i][1], coordinates[i][0])); } for (i=0; i<coordinates1.length; i++) { latLngs.push(new L.LatLng(coordinates1[i][1], coordinates1[i][0])); } for (i=0; i<coordinates2.length; i++) { latLngs.push(new L.LatLng(coordinates1[i][1], coordinates1[i][0])); } L.mask(latLngs).addTo(map); var options = { style: function (feature) { return { "color": "yellow", "weight": 5, "opacity": 0.001, "fillColor": "red", "fillOpacity": 0.5 }; } }; var options1 = { style: function (feature) { return { "color": "yellow", "weight": 5, "opacity": 0.001, "fillColor": "blue", "fillOpacity": 0.5 }; } }; var options2 = { style: function (feature) { return { "color": "yellow", "weight": 5, "opacity": 0.001, "fillColor": "green", "fillOpacity": 0.5 }; } }; var layerpoly = new L.geoJson(sanbartolome.features,options).addTo(map); var layerpoly1 = new L.geoJson(santamonoica.features,options1).addTo(map); var layerpoly2 = new L.geoJson(sanagustin.features,options2).addTo(map); My question here is that how can i remove the unwanted part on the middle? any help? ty
Remove L.mask(latLngs).addTo(map);