Showing GeoJSON data on overlay - overlay

I'm trying to show/hide some GeoJSON data on an overlay layer.
I've the data as an object, but not at some server.
If I use the overlay type 'geoJSON', I'm getting a Eror:
A base layer must have an url
How do I show/hide my data using the overlay show/hide?
The mixed-layers-overlays-geojson-example is not working for me because it uses remote (xyz-json) data.
Additional information: I've the data in some object that I'm intending to modify/update based on user interaction.
PS: it's probably very simple problem
Edit: I made a plunker of the situation. It shows the dynamic adding and removing of a path object and some empty functions for the geoJSON objects.

I (my collegue) found some ugly answer: accessing the leaflet layers directly.
I forked the plunker from the description and added some functions. See my functions transformGeoObjToPath and geoToLeafletLayer. In our application we use layers of type 'featureGroup' for additional stuff like selecting, but this is not in the 'solution' example
But the solution is not 'beautiful', because it accesses the leaflet directly.

Related

Flutter Mapbox clickable cluster annotations

I am trying to use Flutter mapbox_gl package to display clustered data, support for this functionnality has been added recently as showed in this example.
When the user zooms in, I would like to make symbols clickable, I have followed this example of clickable annotations but it seems not working, basically what I did is exactly combining the two examples: adding cluster layers (symbols and circles) using the map controller through onStyleLoadedCallback property, then adding on-click callbacks in my onMapCreated property (using onSymbolTapped & onCircleTapped methods). Am I doing something wrong?
For the clickable annotations from a source, as they come from a GeojsonSource, you must use onFeatureTapped. This will give you 3 data : the id (defined in the source), the point (coordinate on the screen) and the latlng (position on the map).
This allows you to set a generic callback for both the features in the source and the clusters made with it.
The package currently does not support having more data returned in the callbacks.

Marker's descriptions do not show up in Mapbox-js

I have a dataset, created in mapbox from an original GEOJson file, and later associated to a tileset (aslo in MapBox Studio). It was parsed fine, and I could inspect it in Studio>Dataset, all properties were parsed.
This tileset is then used as a layer on a stylep; the points are displayed, but the point's descriptions are not displayed when using MapBox-gl-js.
What do I have to do to display those descriptions when clicking on a waypoint?
note: Adding them by hand when creating the map isn't my preferred solution. Can this be done transparently from the original dataset saved on mapbox servers?
You've tagged this post as mapbox-gl-js, but refer to MapBox-js - which library are you using?
Assuming you mean Mapbox GL JS (https://docs.mapbox.com/mapbox-gl-js), I modified this example of displaying data from a GeoJSON source to use a tileset from Studio instead - but it's the same underlying data. You can see it here.

creating custom leaflet marker on map with idxbroker code

I created a real estate website that uses a company called idxbroker to handle the data from the mls (multiple listing service). I want to have a custom marker to populate on the map for property listings that I have personally so that they stand out when someone searches for properties. Idxbroker does this, however, the marker they provide for my personal listings has a tiny star inside of the same marker used for all listings and you wouldn't realize it unless you were looking for it. I know how to create a custom marker based on leaflet doc's, but not sure how to implement this since idxbroker hosts all this data from their server on my custom subdomain. Is there a way to inject javascript into their code so that my listings have a custom marker?general marker & marker for my listings
Are you looking to add a custom marker on a results page or on the details pages?
It might be easier to just hide the IDX map and write your own in it's place with your custom marker.
Can you provide a map code sample or a link to the page you are trying to customize?

Unsure about the best way to fully separate my Dojo layers

Hey so I'm finding the documentation around building dojo a little hazy around layers.
For my Dojo 1.7+ application I would like a layer that contains only Dojo, and a layer that only contains my code, so I can place the appropriate copyright/license headers at the top.
Looking at build profile template, I see:
layers : {
"dojo/dojo":{
include:["dojo/dojo","dojo/i18n","dojo/ready","dojo/domReady"]
},
"myapp/core":{
include:["myapp/core/module1","myapp/core/module2","myapp/core/module3"],
exclude:["dojo/dojo"]
}
}
But when I look inside my 'myapp/core' layer js file I see lots of occurrences of
'define("dojo*'.
I started tackling this by finding each occurrence of the dojo define and putting that in the dojo/dojo layer include list, but that doesn't seem like the appropriate way of doing layers, is it? At the very least can't I just include certain packages? Am I making a big misunderstanding here?
Bonus it seems like the layer property 'copyrightFile' no longer works. Has that been deprecated, or changed?
Thanks
Are all these ("dojo/i18n","dojo/ready","dojo/domReady") dependencies the only dependencies that your external modules need? If myapp/core/module2 requires a dojo module that is not included in the dojo core layer, then it will be included in the myapp/core layer.
I have gone down the path you are going found it difficult to maintain the separation of code over time. I would create a single layer with both dojo and your code.
Use a layer to encapsulate code that is for specific area of functionality. For example, I have a graphical workflow editor that has it's own layer because it includes a bunch of svg code that doesn't need to be present in the rest of the application.

ASP.NET MVC2 - Determine which type of template is being rendered

Instead of using DisplayFor and EditorFor, I would like to create a more generic ContentFor. In that Html extension it would take into account Metadata values to determine how to render the resulting control. The only piece of the puzzle I am not am to determine is this: Is there a way to determine if I am currently rendering a DisplayTemplate or an EditorTemplate. As a real-world example of this, when rendering a string, for the display version I would like to render it as a , but when rendering the editor version, I would want to render it as a text box.
To better explain, let's say I have two templates called Address.ascx, one in the DisplayTemplates directory and one in the EditorTemplates directory. I would like both of them to use ContentFor to render, but in the display version it renders as a label and in the editor version it renders as a textbox.
Using two ASCX files to call a single file control (which is doable, just do another RenderPartial or DisplayFor/LabelFor) doesn't make sense to me. It breaks the "seperation of concerns". Label displays labels, and Display displays values, it doesn't make sense for a control to try and figure out what way you want it to display.
If you want a use a custom display or label for a property, use the UIHint data Annotation.
[UIHint("MyCustomControlName")]
Then in the DisplayTemplates and EditorTempaltes create a "MyCustomControlName.ascx" file to display that property however you want. Additionally, the ascx controls can read custom Model Metadata and do whatever it is you need done. Example at http://weblogs.asp.net/seanmcalinden/archive/2010/06/11/custom-asp-net-mvc-2-modelmetadataprovider-for-using-custom-view-model-attributes.aspx.