I'd build it based on java script in a web viewer, probably d3.js If I could
Or some sort of java script based solution.
It's not a walk in the park but if you can pull it off it will be totally data-driven, zoomable and clickable.
Otherwise if it can be fairly static, you could draw buttons over areas of interest with conditional formatting and merge variables combined with global variables.
If you convert the DWG file to KML ( EG using https://www.gisconvert.com/) you'd open up the possibility of using map based data instead of CAD based data.
D3 is awesome, and with (a lot) of work can be used in FM. It's compatibility varies wildly though.
Is a great example of something that would look great for your application.
malachydevlin, I did something similar awhile ago with a map of our city, to display the number of students (at our school) living in each suburb. For each suburb I created a global field, eg. gPasadena, gClarenceGardens etc., which was placed at the appropriate spot on the map, in layout mode. I then used scripting to update each global from the demographic data table. Each global field could also be a button (give the button its suburb name or pass the suburb name as a parameter) and used to display other demographic information, plus conditional formatting could be used to colour code suburbs. Given that all of the design work had to be done in layout mode and there was scripting involved, any changes to the map, eg. adding extra suburbs, was clunky and had to be done by the developer (me), so it wasn’t a solution that could be maintained by non-developer. However, the senior management loved it because they could, at a glance, understand the demographics of our student population.
In your situation, I think you could use use globals and buttons.
However, this is exactly why, in the discussion “What new features do you expect to be in Filemaker 14?” back in May, I posted the following, which I would like to see in Filemaker 15:
I would like to see Filemaker have a new type of browse mode layout for managing dynamic geo-spatial records, i.e. the ability to dynamically place objects on surfaces such as maps, at their geo-spatial positions. This would involve either:
1. in browse mode, dragging and positioning records from a list onto a map as objects, and/or
2. using scripting to add/delete/reposition records (objects) on the map from their geo-spatial coordinates.
Using an example to explain: an art gallery hangs art works (eg. paintings) on the walls of its gallery. Each art work is a record in the database and its scaled icon (eg. a thumbnail of the art work) is an object that in Browse view, can be dragged to its location on a layout that represents one wall of the gallery, displaying several objects (art works) that have been dragged into position to reflect the actual design of the display. Clicking an icon displays a popup giving the art work’s details. Imagine an art gallery being able to publish on the web, an interactive ‘map’ of the entire gallery, enabling the public to do a virtual walk-through. As exhibitions change, gallery staff can easily update their map.
The cemetery map above is a good example of the need for this. The cemetery map would be pasted onto the layout, but in browse mode, records are dragged from the list of clients onto their respective grave sites. Clicking a grave then would display details of the client. Hotspots could be dragged from the hotspots data table onto the map and repositioned by dragging as needs change.
Imagine then having the map displayed as a public web page, enabling the public to click on any grave to view the details of its owner.
I played around with something like this a few years ago, and with the help of a friend we divided a map up into small sections by opening the map image in Adobe Illustrator and using the Slice tool. In FM I ended up with the map sliced up into a grid 1m x 1m. In FM I loaded these into a Global Repeating Container field, then positioned multiple instances of this field, each instance holding just one repetition, then configuring these as buttons. It was tedious to set up, but it worked. I dare say there are better ways though.
thanks a lot folks, that was helpful.
It works quite well and I have just converted it for using online through WebDirect from a server.
You can use a bitmap for your base map but then it is not scalable and can be quite slow.
I was looking at mapbox a while back. I would want to be adding the image to a map product in order to gain location and map service functions in the future. Although I see the benefit of image based solutions around being self contained and offline. Mapbox has some offline map tile potential too.
I haven't seen much on mapbox integrations here however.
There's not been much on any mapping integration ... apart for a bit with googlemaps. But they are limited by the quality of the maps, which down at large scales are very poor. i.e. the map of the garden above is just a blank green space.
My technique is to start with a Mapbox example, get the syntax working in a webviewer, and then customize for the application. Once you have a web viewer working for one application, you can copy, paste and modify for others.
I dont suppose you have taken it to the level of sending the location of a newly dropped pin on a web viewer map back to a record in FM?
I have had some fun pushing points to maps. Time to make the maps give some data back to FM. I'd like draw polygons and store the polygon data in fm too. fmpurl?
Actually, I've forgotten how far we took it. It has been months maybe a year since I last touched that part. I remember working on feedback from clicking on pins, but we stopped at "good enough" rather than achieving all that was on our wish list. I do remember revealing additional FM data through hovering or clicking, but I think those parameters were set before the map was displayed.
I will see if I can't work in some time to refresh my memory today or tomorrow. It is possible we got call back scripts to FM working, but I may have that confused with a different portion of the application - not map related.