Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 8 years ago.
Improve this question
What is the name of the technology behind Google Maps which allows the server to send only the part of the map requested from the user to enhance the performance, and is there any library to handle this?
The technology could generically be described as a map server. The map server generates a map for the requested location from a large set of pre-generated map tile images covering the entire planet. The map server may overlay data from other databases on top of this. The combination of a map viewer client and geographical database is traditionally called a Geographical Information System (GIS).
Anyone can write web applications that embed Google maps using the Google Maps API.There is also a fine open source map server (called MapServer) should you wish to deploy your own map server.
As stated, Google generated all of these 256x256 tiles and is just serving the relevant tiles. From your comments it seems that you are looking for something to generate these tiles for you. Several people have written code to chop an image into tiles - for instance http://crazedmonkey.com/blog/googletilecutter or http://www.klokan.cz/projects/gdal2tiles/ both seem to be able to do what your looking for.
If you look at the link for a google maps page it will look like this:
http://maps.google.com/maps?f=q&hl=en&sll=37.0625,-95.677068&sspn=53.345014,88.769531&ie=UTF8&ll=41.226264,-81.454246&spn=0.012507,0.021672&z=16
The javascript code on the page and the server code use the numbers in the link to determine the location of the map you are viewing, the zoom level, and the size of your viewing window to determine the tiles to send to your browser.
There are commercial libraries that can provide the mapping data as well as tools to display and navigate the data. One I've seen used before is Geomicro
This is something that you can try out yourself with OpenSource,
http://www.geoserver.org
http://www.openlayers.org
and
last but not least
http://geowebcache.org/
You should be able to setup a minimal environment that does something similar to maps.google in a couple of hours.
You can also use the Google Maps API with your own images. Of course, they don't need to be a map; they can be any images. This will allow the user to drag and zoom, like in Google maps.
Here's a nice rundown of an open source stack for generating Web-based maps from one of the founders of EveryBlock.com: http://www.alistapart.com/articles/takecontrolofyourmaps
The generic name for the underlying discipline is GIS.
Are you asking for more details out of general curiosity, or do you have a specific technical need for a project?
Google gets high definition satellite shots from services that sell these images, they then store and crop this images and serve only those that are required when you look at a certain point. That is, have you noticed when you zoom-in and out that you get to see squared tiles appearing? those are the ones Google Server is serving you.
You also have to consider how they handle the load with the Google File System and MapReduce
It's just a huge image consisting of square chunks that are downloaded indepedently (using AJAX and so on). I believe it's done by some kind of internal Google libraries (could be also GWT).
More on this topic:
http://blog.grimpoteuthis.org/2005/02/mapping-google.html
Google Maps and Google Earth use something known as KML, or "Keyhole Markup Language", which is a special variant of XML. It's named in tribute to the first geo-tracking satellites. You can store information on a location in Google Earth (and it will eventuall trickle down to Google Maps) by using this markup to geocode its specific latitude and longitude coordinates. You can even include altitude.
Not to answer the question, just broader the information. Microsoft has something called "Deep zoom" for Silverlight that makes it easy to do that kind of effect.
Its a free composer where you tile upp your pictures (or one big picture) and do some other settings, then it breaks it down to a lots of smaller pictures in subfolders, one folder for each zoom-level. And then creates a page that can consume those in a smooth way.
A good blog entry about it:
http://weblogs.asp.net/jgalloway/archive/2008/03/21/why-silverlight-2-deep-zoom-really-is-something-new.aspx
I'm working on a cross browser viewer for very large historic plans and scetches. A good help for the first steps (an old blog) I found at http://www.cadmaps.com/gisblog/?p=7
to understand image pyramids (that's what Google Maps works with).
With a 'tiler' I produce a lot of images like testImage_0001111100.png. 0001111100 is i.e. 5th zoom level and x / y position in the image pyramid.
Most of calculation (neighbor images, image stack up and down) is done serverside by php called by ajax requests.
I'm struggling in the moment with (not insolvable) problems in smooth shifting and zooming. That's my problem - but read the article.
AJAX allows you to update part of the page from the javascript. Basically the javascript makes a request back to the webserver and replaces part of the existing page with the result.
JQuery is one library that makes this easier. I don't know what google uses.
Related
I work at a printer where we generate thumbnails of artwork for orders and store them in a folder before printing.
I'm looking for a code library that will allow us to take a photo of a printed item and look through the library of thumbnails for the design.
Just wondered if anyone knows of a library or api that could do this?
Thanks
David
pHash is one solution.
There are others but that mainly depends on your requirements: do you only want to identify identical images, if not, what types of transformations do you want to be able to capture etc.
In general you should look for near duplicate image search.
#david-jennings there are numerous methods to look for similar images in libraries. Remember that google already does this in google images.
Your problem falls under the scope of Content Based Image Retrieval (CBIR), which aims at looking for images with similarities in their content. MPEG-7 is a standard established many years ago to address these issues and the research field is very active with new techniques being developed constantly.
The main idea in CBIR is to extract some kind of a signature from an image and try to match it with all previously extracted signatures of all images in your database. Which method to use depends upon the specifics of your problem... According to your initial post I suppose that probably the use of SHIFT is going to do the work for you...
You may implement such a system using OpenCV with C/C++/Java/etc., or something more "scientific" using MATLAB.
I don't know javascript (unfortunately) and I'd like to make a mindmap-like "organization chart" similar to this one:
This map should have an ability to zoom-in and zoom-out similar to google maps, and the ability to arbitrarily connect nodes. So it is more like a free graph, not like an ordinal tree. Mindomo makes this pretty well, but it is commercial and flash-oriented.
Does anybody know of a similar solution?
My research pointed me out that this could be a svg sketch, possibly generated offline, or maybe something using canvas. A click on the node should redirect to some web location.
Google maps is good because it also hides some details, and so should do this graph map in zoomed out projection.
A few important questions:
Do you need this generated in real time based on some underlying dataset?
Aside from zooming, should the user be able to manually open/close nodes?
You can manually generate this simply using some free tools:
MindMeister
xmind
freemind
although non-traditional, can you consider using Prezi?
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
So I'm doing a pre-study on how to implement a responsive design to an existing site with a lot of images. These images would be nice if we could serve differently to the visitor according to device size, pixel ratio and/or bandwidth.
The site is using Akamai as a CDN so we must have a solution that uses different URLs for different image sizes. Doing this by Javascript is fine, we require it anyway.
I was looking at CSS-tricks spreadsheet (http://css-tricks.com/which-responsive-images-solution-should-you-use/) and specifically Foresight.js (https://github.com/adamdbradley/foresight.js) seemed to be the right stuff for us.
Basicly the markup would look something like this:
<img data-src="/images/imagefile.jpg" data-width="320" data-height="240" class="fs-img">
<noscript>
<img src="/images/imagefile.jpg">
</noscript>
But then I noticed that Google will ignore any fallback images placed within tags. This could be devastating to our SEO since the images from the press room are essential to be indexed by Google et al.
So my question is, how do you serve SEO friendly-enough images responsively? Is removing the src-attribute killing SEO? There will still be all the other attributes, the alt-one most important I guess.
yea, image alt tag is very important from search engine optimization point of view. Here there is no harm to resize the image by considering devices or element. Make sure you use meaningful image name to get them up in image search result of Google.
Interesting...
I don't really feel that you =need to "alt" tag all of the copies. From SEO point of view this is both redundant and somewhat spammy (imagine Google's response to a website in which each URL holds 5 [or more] different sized version of the same image, all with the same exact alt tags... )
Allowing Goolge to Recognize tags of the "default size" image should be enough for your SEO purposes.
Another workaround I can think of is to always have live links to all the different sizes (while presenting only one personalized version)
I`m not sure if its feasible, but you don't have to many version or want to present a few selected ones, this will do.
This will not solve the alt tag issue, but at least they all be crawled and indexed separately.
Also, alt tag is really over-rated. Speaking from almost 10 years of experience I can say that is's effect is marginal, at best. Especially if you link to the image includes the relevant KW.
If still worried, you can link to a different HTML page, containing said image and alt tag it there but it sound like too much trouble to me...
I would like to create a website that has a large image of a tree from a distance on. When you zoom in it shows more defined image of the branches and then zooming in further the words will display in the braches. You can scroll the image to see all the other words. So its like google maps but for my own image.
I have tried looking for examples etc but can only find ones of maps. I believe I have to make different tiles for the different levels.
Is there any examples or tutorials out there that could help me or is there a specific name for what I should be looking for.
The easiest way to do it is to use a tool called MapTiler.
It's free, and you just follow a really simple wizard that just hides all the complexity from the process.
Anyway, I've posted a tutorial exactly on this topic which you can check here.
I created a Java based version of a Google Map Tiler tool here:
https://github.com/devldevelopment/googlemaptiler
This will help you cut up images as per Map Tiler but is free. An example with Javascript is provided on the github readme.
Thanks
I've been admiring StackOverflow's default quilt-like profile pictures (which I notice are also on the Fail Blog) and am curious what program both are using to generate them.
But what I really want to know is: If you were to design the system to create default profile pictures, how would you do it?
I'm looking for ideas on what algorithm you'd use, as well as things like how you would related the image to the user, be it related to their username, or some portrayal of their progress (ie the image gets more complex, or larger, as they gain reputation).
FWIW, the default pictures are generated by gravatar, which is why you'll see them on more than this site.
It's called an Identicon. On Stackoverflow it Gravatar uses your IP address to generate the image.
This is an editorial, not necessarily an answer.
Those auto-generated avatars on this site come from a service (Gravatar) that focuses exclusively on providing avatars and is therefore the core of their business. For apps that aren't specifically intended to generate and display avatars, I would just go with an empty placeholder (like Facebook). It's a neat feature, but is it worth your development time when a simple placeholder would be just as effective?
A very good source of images would be flame fractals. They are rather computationally expensive, so simply sourcing them from a project like electric sheep or having them be rendered by the user's computer should be considered to offload the work.
Who wouldn't want default profile pictures like these?
alt text http://sheepserver.net/v2d6/gen/202/124809/icon.jpg alt text http://sheepserver.net/v2d6/gen/202/124805/icon.jpg alt text http://sheepserver.net/v2d6/gen/202/125373/i77.jpg alt text http://sheepserver.net/v2d6/gen/202/125431/i116.jpg
Use a Julia set or something like that and set the initial conditions to a hash of the user's email address.
I'd use a jpeg server tool (aspjpg or similar) to manipulate the image on load so it displays their badges within their profile pic.
In fact, using any tool to dynamically generate images is pretty cool. Applying some sort of 3d or flash technology to dynamically create images using random variables for eye spacing or facial structure would be pretty wicked as well.
But ya this is a weird question. hah!
I did something similar years back, I used POV-Ray to generate little 3D scenes with torusses (torii ?) and spheres. There were lots of parameters to tweak such as the position, size and colour of each object.
POV-Ray is a scriptable 3D render engine, you can find it here.
Unfortunately my images all looked too similar to each other. I love Gravatar's identicons as uses on this site. I think the symmetry helps and the shapes are unique enough that you can identify users fairly clearly.
In ruby there have a library http://github.com/swdyh/quilt to generate it!