This is an experiment that I did when I first came into contact with the Google map API last year. I didn't do any further work in the future, but I wrote a draft and kept it in my blog post. Although some ideas are naive, there are even some errors. Today it seems that there are still some reference values, so I will release the draft for you to have a look. The original text is as follows:
0. Description
After some time of thinking, I recently tried a "Google map online vector Interoperability GIS platform". Its original intention was to make full use of Google map's high-definition satellite images, professional GIS digital operations are carried out directly on the webpage, especially for high-definition data in cities. It is worth developing some applications. Of course, its value is limited by a variety of factors, and its practice goes first. After some attempts, I have made some functional explorations and made initial progress, data in standard GIS formats can be loaded, digitalized, and stored as data in standard GIS formats. However, we are faced with some performance bottlenecks, which will be further elaborated later.
No summative documents have been prepared before. First, because the previous experiments are not deep enough, the long-term understanding of the project is not deep enough, and second, because the current knowledge is still very lacking, there are a lot of things that may lead to misunderstandings. The same is true now. I'm afraid there are many mistakes in this article. Please kindly advise and haihan.
At the same time, my attempt may be subject to temporary interruptions, because there are other formal projects and things to do, so you should write them down as soon as possible, first, I hope that I will not forget some ideas and attempts that may be useful for reference in the future. Second, I will share my thoughts and experiences with you and discuss the extension of such ideas, while trying, I have been thinking that this application should not be so far. As long as you think of it, there are many technical experts. If you have the opportunity to work together, what matters is that what you do must be truly valuable for your use.
I. Overview
The "Google map online vector Interoperability GIS platform" project provides professional GIS staff or specialized industry staff with a digital operating platform on Google satellite images, independent of additional plug-ins, it is browser-compatible. At the same time, the server provides the vector data import and export functions, and the server can also perform data conversion services, you can easily display data in the standard GIS format on a browser map and perform basic editing operations on the data. In addition, with the help of googe map's texture function, you can paste the raster basemap that you need to digitize on the Google map. The server also provides the grid calibration service. In short, you do not need any professional software or plug-ins, you can use a browser to complete conventional digital operations, while initially managing your own vector and raster data;
Ii. system functions
The system functions are described as follows one by one. :
1. Digital points, lines, and surfaces on Google map;
2. digital files can be stored in common GIS vector file formats (such as ESRI shape and MapInfo );
3. Load the General GIS vector file to Google map to hierarchical display;
4. Load the customer's own grid basemap to Google map as the digital basemap, and perform the calibration operation;
5. Certain attribute editing and statistics functions are available;
6. Registered users can manage vector files and raster files, and have certain extended functions such as hierarchical MAP storage management;
Iii. Technical Implementation
The technologies involved in this system are described as follows:
1. Google map API;
2. Javascript;
3. browser Vector drawing; (VML, SVG, and browser compatibility issues) (the system can temporarily use interfaces such as polyline polygon in Google APIs in the early stage, then, it must be optimized by using VML and SVG );
4. Server Asp.net;
5. gdal/OGR; (C # Call this database to read and write GIS vector files, convert formats, and read and write raster files for registration );
6. Ms SQL2000; (stores custom Vector file encoding, user information storage, and file information index storage );
7. Ajax technology; (the storage and read/write of browser-side vector data depend on asynchronous transmission with the server. XMLHTTP technology is used in this system );
Iv. Bottlenecks
The difficulties faced by the system are described as follows:
1. The Google map API has limited support for graphics;
2. bottleneck in displaying large data volumes of vector data. For example, when the vector shape data is loaded to hundreds of KB, the browser drawing (SVG or VML) is inefficient, second, JavaScript anti-encoding is less efficient. Google map API plotting is actually implemented by calling SVG or VML based on different browsers.
3. browser compatibility problems. First, Firefox uses SVG graphics, while ie only supports VML. This problem can be solved flexibly currently.
4. The re-painting problem, the enlargement and reduction of windows during digitization, and the deletion of images all involve the re-painting of vector images, here, JavaScript uses the array to store the coordinate information of elements. Therefore, repainting is drawn by a line. However, once the data passes over kb, the speed will be slow, especially when IE is used, the efficiency of VML Line Painting is much lower than that of SVG in Firefox. In the future, we will try to create a spatial location index tree so that the tree is located in the visible part of the plot, the non-visible part is not drawn, and the pyramid index is created at the same time, so that the display of some details in a small scale can be omitted.
5. Interaction efficiency between the browser and the server.
6. Reverse decryption of the offset of the Google map coordinates. Refer to the network document and there are methods to solve the problem.
After the original article is complete, I will return to this article one year later and comment on it:
This "Google map online vectoring interoperability platform" was named as an amazing product. It was just a day when I first came into contact with the Google map API. I can see that this API can be underlined, I can't convert coordinates directly on the web page. I just need to get a dynamic Asp.net file on the server that stores coordinates and converts them to the SHP format, then, we can experiment with the recently popular Ajax, so we didn't go to bed all night, just as the next day, we made a dash digital function and saved it as the esri shp format. At the same time, I encountered some problems and some confusions during the experiment. After a few days, I made a small summary and wrote it on my blog, but it was always used as a draft and was not published, because I always feel that something is not appropriate. Today I will look back and see that some of my thoughts are not very mature.
First, will anyone use this? On Google Earth, vector graphs and digitization can be superimposed, and the operation is more convenient.
Second, is web-based plug-ins really a selling point? For public applications, it may be possible, but for professional applications, you should think about the cost-effectiveness ratio well. Of course, technical geeks should not talk about it separately. At that time, I thought maybe I could develop it into an online campus map production platform. This would be an entertaining, mass-oriented application, and perhaps worth it. I may think about it later.
Once again, don't underestimate Google. Previously, during this experiment, especially in the low-resolution digitization process, we found that the coordinate encryption and offset of Google map has been achieved, after that, I went online to find the relevant Google map coordinate offset information, and found that the method for obtaining the current latitude and longitude offset parameter from a high-person experiment was not cracked.AlgorithmIt was a stupid way, So I compared the experiment. However, this method won't work a few months ago. Google has blocked the interface for obtaining its parameters before. It's really amazing.
Finally, browsers are just a kind of general-purpose software, and browser support for HTML5 is the trend of the times, so these brave and flexible technologies will gradually become history. When we leave the browser blankProgramWhen there is not much space to play, but we find that the browser has been replaced, then we may find that our invention will be useless, unless you can find its true value, or you are a tech enthusiast and write a powerful browser.