मैं एक ऐसा एप्लिकेशन विकसित कर रहा हूं जो अपने संबंधित देशांतर और अक्षांश मूल्यों का उपयोग करके शहरों के बीच की दूरी की गणना करता है।
लेकिन समस्या यह है कि इन शहरों के अक्षांश और देशांतर मूल्यों की एक व्यापक सूची प्राप्त करने के लिए कहाँ है?
मैं एक ऐसा एप्लिकेशन विकसित कर रहा हूं जो अपने संबंधित देशांतर और अक्षांश मूल्यों का उपयोग करके शहरों के बीच की दूरी की गणना करता है।
लेकिन समस्या यह है कि इन शहरों के अक्षांश और देशांतर मूल्यों की एक व्यापक सूची प्राप्त करने के लिए कहाँ है?
जवाबों:
जियोलाइट लिगेसी डाउनलोड करने योग्य डेटाबेस में जियोलाइट सिटी बहुत मानक है जहां तक मैं जानता हूं।
Geonames डाटासेट के बारे में मत भूलना :
GeoNames भौगोलिक डेटाबेस में सभी देशों को शामिल किया गया है और इसमें आठ मिलियन से अधिक प्लेमेनैम शामिल हैं जो मुफ्त डाउनलोड के लिए उपलब्ध हैं।
http://download.geonames.org/export/dump/
प्राकृतिक पृथ्वी की आबादी वाले स्थान एक और विकल्प हो सकते हैं।
all admin-0 and many admin-1 capitals, major cities and towns, plus a sampling of smaller towns in sparsely inhabited regions
। और लैटन मान को DBF
फ़ाइल के अंदर दो कॉलम के रूप में पाया जा सकता है ।
POP_MAX,POP_MIN,POP_OTHER = "158000","113700","107890"
मेरे शहर के लिए है, कि वास्तव में यूएसएसआर के युग में 173000 अधिकतम था।
आप OpenStreetMap से डेटा निकाल सकते हैं (उदाहरण के लिए, उनके एपीआई का उपयोग करके, जैसा कि यहां वर्णित है ), या बस विकिपीडिया से। शहरों के अधिकांश विकिपीडिया पृष्ठों में शहर के निर्देशांक हैं।
बेशक, इसके लिए थोड़ी स्क्रिप्टिंग की आवश्यकता होती है, और संभवतः उन शहरों की एक सूची जो आप चाहते हैं।
OpenStreetMap, इंटरनेट का उपयोग, wget उपकरण और XML की तरह एक XPath फ़िल्टर का उपयोग करें :: XPath । अनुरोध को 2x2 डिग्री बीबीक्स में चंक किया जाना चाहिए। यहाँ १२ के लिए १२ डिग्री पश्चिम तक का एक उदाहरण पूर्व में ५२ और दक्षिण में ५२ और उत्तर में ५४ डिग्री है। बर्लिन अंदर है .. बहुत सारे इन्फोस के साथ। छोटी इकाइयों के लिए जगह = शहर का उपयोग करें। आने वाला प्रारूप XML है।
wget -O osm-city-12-52-14-54.xml "http://open.mapquestapi.com/xapi/api/0.6/node[place=city][bbox=12,52,14,54]"
wget -O osm-town-12-52-14-54.xml "http://open.mapquestapi.com/xapi/api/0.6/node[place=town][bbox=12,52,14,54]"
<?xml version='1.0' encoding='UTF-8'?>
<osm version="0.6" generator="Osmosis SNAPSHOT-r26564">
<node id="21484051" version="7" timestamp="2010-07-13T20:11:08Z" uid="15720" user="J budissin" changeset="5211741" lat="52.2994511" lon="13.6244389">
<tag k="openGeoDB:auto_update" v="population,is_in"/>
<tag k="openGeoDB:loc_id" v="19549"/>
<tag k="openGeoDB:is_in_loc_id" v="294"/>
<tag k="openGeoDB:name" v="Königs Wusterhausen"/>
<tag k="openGeoDB:is_in" v="Dahme-Spreewald,Brandenburg,Bundesrepublik Deutschland,Europe"/>
<tag k="openGeoDB:layer" v="6"/>
<tag k="openGeoDB:version" v="0.2.6.11 / 2007-12-04 / http://fa-technik.adfc.de/code/opengeodb/dump/"/>
<tag k="openGeoDB:telephone_area_code" v="03375"/>
<tag k="openGeoDB:population" v="32785"/>
<tag k="is_in" v="Dahme-Spreewald,Brandenburg,Bundesrepublik Deutschland,Europe"/>
<tag k="openGeoDB:community_identification_number" v="12061260"/>
<tag k="openGeoDB:license_plate_code" v="LDS"/>
<tag k="openGeoDB:sort_name" v="KOENIGS WUSTERHAUSEN"/>
<tag k="openGeoDB:type" v="Stadt"/>
<tag k="openGeoDB:postal_codes" v="15711,15831"/>
<tag k="name:hsb" v="Parsk (Königs Wusterhausen)"/>
<tag k="name" v="Königs Wusterhausen"/>
<tag k="opengeodb:lat" v="52.296999"/>
<tag k="opengeodb:lon" v="13.6297229"/>
<tag k="place" v="town"/>
<tag k="population" v="33370"/>
</node>
...
एक सरल पर्ल हारवेस्टर स्क्रिप्ट:
#!/usr/bin/perl -w
# --------------------------------------------------------
# Simple OSM Harvester
# --------------------------------------------------------
use strict;
use XML::XPath;
use XML::XPath::XMLParser;
# Use UFT 8
binmode(STDOUT, ":utf8");
# --------------------------------------------------------
# Parameter @todo put params into commandline arguments
# --------------------------------------------------------
# while ($cmd = shift) {
# $level = shift if $cmd =~ /level/;
# $east = shift if $cmd =~ /east/;
# ....
# }
# --------------------------------------------------------
my $level="town";
my $east=14;
my $west=12;
my $north=54;
my $south=52;
# --------------------------------------------------------
# OS Call wget
# --------------------------------------------------------
my @call =`wget -O osm-town-$west-$south-$east-$north.xml "http://open.mapquestapi.com/xapi/api/0.6/node[place=$level][bbox=$west,$south,$east,$north]"`;
# --------------------------------------------------------
# Parse the stuff
# --------------------------------------------------------
my $xp = XML::XPath->new(filename => "osm-town-$west-$south-$east-$north.xml");
my $nodes = $xp->find('/osm/node'); # find all paragraphs
for my $node ($nodes->get_nodelist) {
# print $n, "\n";
my $lat = $xp->find('./@lat', $node);
my $lon = $xp->find('./@lon', $node);
my $name = $xp->find('./tag[@k=\'name\']/@v', $node);
my $pop = $xp->find('./tag[@k=\'population\']/@v', $node);
print "name=$name\tlogitude=$lon\tlatitude=$lat\tpopulation=$pop\n";
}
# --------------------------------------------------------
# EOF
# --------------------------------------------------------
जनरेट किया गया उत्पादन (क्षमा करें)
./osm.pl
Warnung: Joker-Zeichen werden bei HTTP nicht unterstützt.
--2014-02-04 01:13:23-- http://open.mapquestapi.com/xapi/api/0.6/node[place=town][bbox=12,52,14,54]
Auflösen des Hostnamen »open.mapquestapi.com (open.mapquestapi.com)«... 205.188.201.176
Verbindungsaufbau zu open.mapquestapi.com (open.mapquestapi.com)|205.188.201.176|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: nicht spezifiziert [text/xml]
In »»osm-town-12-52-14-54.xml«« speichern.
[ <=> ] 128.148 242K/s in 0,5s
2014-02-04 01:13:30 (242 KB/s) - »»osm-town-12-52-14-54.xml«« gespeichert [128148]
name=Königs Wusterhausen logitude=13.6244389 latitude=52.2994511 population=q33370
name=Teterow logitude=12.5753569 latitude=53.7709505 population=9647
name=Neukalen logitude=12.7905515 latitude=53.822817 population=2304
name=Premnitz logitude=12.3384178 latitude=52.5310487 population=9671
name=Havelberg logitude=12.0733335 latitude=52.8234367 population=7400
name=Teltow logitude=13.2644532 latitude=52.4016457 population=19541
ग्लोबल शहरों के लिए यहां एक और विकल्प है: GRUMP संस्करण 1 में अब आबादी के आकार जैसे विशेषताओं के साथ निपटान बिंदुओं की एक मुफ्त परत है।
http://sedac.ciesin.columbia.edu/data/set/grump-v1-settlement-points
मैंने http://www.zuzemo.com/world-cities-and-administrative-divisions-database-german-edition , से उद्धरणों की सूची डाउनलोड की है , उनके पास अन्य भाषाएँ हैं जर्मन, इतालवी, स्पेनिश ...
आप जियोनाम से एक कोशिश कर सकते हैं जो बिल्कुल मुफ्त है ।।
इंटरनेट पर कई भुगतान किए गए डेटाबेस भी हैं जैसे www.worldcitiesdatabase.com या geodatasource.com साथ ही
आप खुले सड़क डेटा का उपयोग भी कर सकते हैं लेकिन आपको डेटा निकालने के लिए टैगिंग सिस्टम को समझने की आवश्यकता है।
30 पात्रों के लिए एक और मुफ्त डेटाबेस ब्ला ब्ला। .. https://www.maxmind.com/en/worldcities