ThinkGeo.com    |     Documentation    |     Premium Support

Using own images (jpg/png etc.)

Hi,


I have a project regarding visualizing asset management data and I would like to know whether Map Suite can help me in it.


Firstly, is Map Suite able to allow me to use my own image which depicts, say, a town?


Secondly, from that town image, can I navigate/zoom in and click on a house, for example, which will then direct me to another image (eg. a 2D top view of the interior of the house)  of mine?


All these should be done in asp.net website. Thanks!


Theo



Everything that you are describing in your post is possible with Map Suite Web Edition. You can use your own image to depict a town or anything else. You can check the sample “Draw a Point Using a Bitmap” of the “How Do I” samples to give you an idea. 
  
 Now , for your second question “Secondly, from that town image, can I navigate/zoom in and click on a house, for example, which will then direct me to another image (eg. a 2D top view of the interior of the house)  of mine?” 
  
 The description is a little vague but I think I have an idea of what you want to accomplish. Let’s say that you are at a zoom level where you see towns represented by images, you click on one of them and it makes the map zoom in to a closer zoom level with houses represented by some other images. Then when you click on a house, it zooms in again to show floor plan or it could link to a page with floor plans of the clicked house. That might not be your exact requirement but I am pretty comfident that Map Suite with the relevant data on your side will allow you to accomplish any of the tasks you described.

I have seen the sample "Draw a Point Using a Bitmap" of the "How Do I" samples and the sample code involves a shapefile which serves a map. 
  
 However in my case, I want to use a jpg/png image as the map itself, as my client will be providing me ordinary images of places/locations instead of shapefiles. So, on my map I would want to place images of house on it and when I click on the house, it would link me to another image, say, the floor plan of the house. The best case scenario would be after clicking on the house, the map will be replaced by the house floor plan image. On the house floor plan image itself will have several images too, such as TV, cupboard, sofa etc which are clickable and link to a new image. So on and so forth. Is Map Suite able to help me achieve that? 
  
 Thanks! 
  
 Theo 
  


Theo, 
  
   The key to what you are trying to do is to be able to tie the images you have to the ground.  We need to know where the images are spatially located and what scale the image is at.  With other geographic image formats there is something called a world file.  The world file tell us about the extent of the image, the scale and information about the pixels of the image.  Using this world file we can properly integrate the image into the map and then it functions geographically.  You could trace over a room and we could tell you how big it is etc.  The world file can be tied to any kind of image you have such as a PNG, JPG, Bitmap etc.  If you don’t have all of the information required by the world file I think we may still be able to help you.  We would need to know at least the scale of the image and a point on the image in geographic coordinates.  If you can get us a few points then we won’t need the scale.  Actually let us know everything you know about anything geographic attached to the image.  I am sure we can help you get that data placed on the map. 
  
 World File Info: 
 en.wikipedia.org/wiki/World_file 
  
 David

Thanks David but as I have said my client is only providing ordinary images. Let me provide you with some images as examples.


Let's say this is the "map": i47.tinypic.com/15ml3y9.gif


From the "map" I wish to use Map Suite to draw pointers on the individual stations. So when I click on "City Hall" for example, The display of the "map" will be changed to the floor plan: i46.tinypic.com/287btc.gif 


Then with Map Suite capability I will retrieve some asset data from a Oracle database and display it on the floor plan with pointers drawn on it via tooltip for example.


All these changes can be in default.aspx, or even default.aspx -> cityhall.aspx. Can it be done? In short I want to know whether Map Suite has the "Image Map Creator" capability.


Thanks!


Theo



Hello 
 I am looking to build a similar application. I have floor plan images that I would like to use as maps. I am just getting started with testing mapsuite web, but it sounds like I can  utilize my floorplan images as layers if I have the coordinates of at least two corners of each map. I do have this data. I would think I could just overlay this over google or whatever world map and zoom into the floor plans from there? I will continue reading on how to do this and playing with the samples, but any guidance on the easiest way to do this is greatly appreciated. Aside from this, another challenge that I see would be customizing the zoom levels to accommodate a higher zoom than the defaults. I don’t know what the scale is on the highest zoom default level, but I need to zoom in more. Do you have any examples of this? Also, if I am using DecimalDegree as my mapunit, how many decimal places/precision does map suite support for coordinates? Is there a built in function for distance calc in feet when using decimaldegree as mapunit? Sorry for the barrage of questions.  
  
 Thanks for your help! 
  
 *Sorry if I posted more than once. This is my first post and my replies did not seem to be posting from Chrome.

Why no response on this in 24 hours? Theo - have you heard anything? I can be contacted at dave@tahoetech.us



I am still waiting for a response actually.

 


Theo,
 
I’m sorry but I need to see that we don’t support it directly in WebEdition now, we have already add it into our work list, and here are some ideas:
 


        
  1. Render the image as the base overlay using the attached sample code.

  2.     
  3. Draw the hotspot on each “town” or “house” where we click and show another image using EditOverlay, then create a temporary shape file and save the points.

  4.     
  5. Load the temporary shape file as a markeroverlay which is attached with client click event.

  6.     
  7. Invoke the “setUri” method of “Imagery layer” when click on the map and redraw the overlay.


 
Thanks,
 
Johnny,

1718-GettingStarted.zip (1.88 KB)

David, 



It seems that there are few differences with Theo’s problems, and you render the floor plan images using GdiPlusRasterLayer, and here is the sample code: 

 




GdiPlusRasterLayer layer = new GdiPlusRasterLayer(MapPath("~\\App_Data\\15ml3y9.gif"), renderExtent); 
LayerOverlay overlay = new LayerOverlay(); 
overlay.Layers.Add(layer); 




and also you can set the UpperThreshold and LowerThreshold to determine when we render the image. 



You can refer to “gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/12/aft/6726/afv/topic/Default.aspx” for the details about how to customizing the zoom levels and how to zoom in more. 



Yes, there is a built in function for distance calc and the code is like below: 





LineShape line = new LineShape(); 
double distance = line.GetLength(GeographyUnit.DecimalDegree, DistanceUnit.Feet); 




Any question please let us know, thanks, 



Johnny, 

 


 



David, 
  
 Here is another post about how to customize the zoomlevel set.  
  
 gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/12/aft/6104/afv/topic/Default.aspx 
  
 Thanks, 
  
 Johnny

Ok thanks Johnny. However when I tried the code in the GettingStarted.zip, I get blank page. Is there suppose to be anything? 
  
 Thanks 
  
 Theo

Ok after changing the width and height from “100%” originally to “px” instead I manage to see the map. That’s weird.

theo, 
  
 It is caused by "DOCType", please remove it when you use "100%" as the width and height. 
  
 Thanks, 
  
 Johnny,

I now have 3 overlays - base WMS, map markers and indoor maps. I can click on the map markers and auto zoom into the indoor map extent. Map and marker layer visibility are determined by zoom level/scale so manual zooming works great too. This is sweet! Thanks guys

I now have 3 overlays - base WMS, map markers and indoor maps. I can click on the map markers and auto zoom into the indoor map extent. Map and marker layer visibility are determined by zoom level/scale so manual zooming works great too. This is sweet! Thanks guys



David, 
  
 That’s a good news, please be free to ask if there is any question. 
  
 Johnny,