Google maps locaties aanduiden

Status
Niet open voor verdere reacties.

kenikavanbis

Terugkerende gebruiker
Lid geworden
22 mei 2007
Berichten
2.196
Ik vraag me af hoe jullie punten aanduiden op de kaart bij google.

via code xml lukt het maar welk manieren hebben jullie als je enkel

het address hebt of iets wil visualiseren van punten locaties van winkels ect.

dus als ik het goed voorheb kan je enkel de cordinaten geven:
- maar waar vraag je deze op (deze van belgie heb ik )maar voor volledig europa ?? asia ??


PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- @refence http://code.google.com/intl/nl-NL/apis/maps/documentation/demogallery.html
-->
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=??" type="text/javascript"></script>
en wat is dan die key??
PHP:
    <script src="http://gmaps-utility-library.googlecode.com/svn/trunk/mapiconmaker/1.0/src/mapiconmaker.js" type="text/javascript"></script> 
    <script type="text/javascript">
    //<![CDATA[
    var locations = {};
    function load() {
      var map = new GMap2(document.getElementById("map"));
      map.setCenter(new GLatLng(47.614495, -122.341861), 13);
      GDownloadUrl("markerdata.xml", function(data) {
		        var xml = GXml.parse(data);
		        var markers = xml.documentElement.getElementsByTagName("marker");
		        for (var i = 0; i < markers.length; i++) {
			          var name = markers[i].getAttribute("name");
			          var address = markers[i].getAttribute("address");
			          var type = markers[i].getAttribute("type");
			          var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
			          var store = {latlng: latlng, name: name, address: address, type: type};
			          var latlngHash = (latlng.lat().toFixed(6) + "" + latlng.lng().toFixed(6));
			          latlngHash = latlngHash.replace(".","").replace(".", "").replace("-","");
			          if (locations[latlngHash] == null) {
			            	locations[latlngHash] = []
			          }
			          locations[latlngHash].push(store);
		        }
		        for (var latlngHash in locations){
			          var stores = locations[latlngHash];
			          if (stores.length > 1){
			            	map.addOverlay(createClusteredMarker(stores));
			          }else{
			            	map.addOverlay(createMarker(stores));
			          }
		         }
		      });
    }

    function createMarker(stores) {
      var store = stores[0];
      var newIcon = MapIconMaker.createMarkerIcon({width: 32, height: 32, primaryColor: "#00ff00"});
      var marker = new GMarker(store.latlng, {icon: newIcon});
      var html = "<b>" + store.name + "</b> <br/>" + store.address;
      GEvent.addListener(marker, 'click', function() {marker.openInfoWindowHtml(html);});
      return marker;
    }

    function createClusteredMarker(stores) {
      var newIcon = MapIconMaker.createMarkerIcon({width: 44, height: 44, primaryColor: "#00ff00"});
      var marker = new GMarker(stores[0].latlng, {icon: newIcon});
      var html = "";
      for (var i = 0; i < stores.length; i++) {
        html += "<b>" + stores[i].name + "</b> <br/>" + stores[i].address + "<br/>";
      }
      GEvent.addListener(marker, 'click', function() {marker.openInfoWindowHtml(html);});
      return marker;
    }
    //]]>
  </script>
  </head>
  <body style="font-family:Arial, sans serif" onload="load()" onunload="GUnload()">
    <div id="map" style="float:left; width: 600px; height: 500px; border: 1px solid black"></div>
  </body>
</html>
 
prima ik kreeg dit volgens url

http://maps.google.com/maps/api/geocode/xml?address=Boekhoute&sensor=false

PHP:
<GeocodeResponse>
	<status>OK</status>
	−
	<result>
		<type>sublocality</type>
		<type>political</type>
		<formatted_address>Boekhoute, 9961 Assenede, Belgi�</formatted_address>
		−
		<address_component>
			<long_name>Boekhoute</long_name>
			<short_name>Boekhoute</short_name>
			<type>sublocality</type>
			<type>political</type>
		</address_component>
		−
		<address_component>
			<long_name>Assenede</long_name>
			<short_name>Assenede</short_name>
			<type>locality</type>
			<type>political</type>
		</address_component>
		−
		<address_component>
			<long_name>Eeklo</long_name>
			<short_name>Eeklo</short_name>
			<type>administrative_area_level_3</type>
			<type>political</type>
		</address_component>
		−
		<address_component>
			<long_name>Oost-Vlaanderen</long_name>
			<short_name>Oost-Vlaanderen</short_name>
			<type>administrative_area_level_2</type>
			<type>political</type>
		</address_component>
		−
		<address_component>
			<long_name>Vlaams Gewest</long_name>
			<short_name>Vlaams Gewest</short_name>
			<type>administrative_area_level_1</type>
			<type>political</type>
		</address_component>
		−
		<address_component>
			<long_name>Belgi�</long_name>
			<short_name>BE</short_name>
			<type>country</type>
			<type>political</type>
		</address_component>
		−
		<address_component>
			<long_name>9961</long_name>
			<short_name>9961</short_name>
			<type>postal_code</type>
		</address_component>
		−
		<geometry>
			−
			<location>
				<lat>51.2576672</lat>
				<lng>3.7170222</lng>
			</location>
			<location_type>APPROXIMATE</location_type>
			−
			<viewport> −
				<southwest>
					<lat>51.2297272</lat>
					<lng>3.6529925</lng>
				</southwest> −
				<northeast>
					<lat>51.2855902</lat>
					<lng>3.7810519</lng>
				</northeast>
			</viewport>	−
			<bounds> −
				<southwest>
					<lat>51.2214364</lat>
					<lng>3.6455942</lng>
				</southwest> −
				<northeast>
					<lat>51.2807172</lat>
					<lng>3.7527334</lng>
				</northeast>
			</bounds>
		</geometry>
	</result>
</GeocodeResponse>
als er mensen zijn die lijsten bezitten altijd welkom Ik bezit Belgie al met postlocationcode. Ik had graag volledig europa om de calls naar google te minimaliseren.ps ik wil het ook niet met een loop google bestommen moesten er mensen zijn dit zouden willen voorstellen.
 
Niet zo moeilijk toch, bij een nieuw adres eerst de database raadplegen.
Zit het adres er nog niet in dan ga je een call naar Google doen voor de locatie om hem in de database op te slaan.

Waarom wil je trouwens heel Europa meteen in je database hebben?
 
Niet zo moeilijk toch, bij een nieuw adres eerst de database raadplegen.
Zit het adres er nog niet in dan ga je een call naar Google doen voor de locatie om hem in de database op te slaan.

Waarom wil je trouwens heel Europa meteen in je database hebben?

Ik wil externe connecties zo veel mogelijk vermijden () en google heeft enkel de cordindaten en locatie maar ik dacht aan pakjesdienst info enz. op zo de js,csv ect staat meestal meer info.En ik probeer altijd op standaarden verder te gaan.en data op die mannier in te lezen zonder veel conversies.

als je het volgende ziet merk je tegen welke probleemen ik aanloop ik wil een array maar het blijft een string.en in onderstaande code zou ik dit liever niet opslaan maar als array kunnen gebruiken en verder verwerken als array. Maar hier merk je snel dat als er iets misgaat of service veranderd je constant bezig blijft met programeren.
PHP:
	function readjson(){
		$arr = array();
		$string;
		if ($this->open()){
			while(!feof($this->file)){
				$inthistext=fgets($this->file);
 				$me = array(':' , '[' , ']','{','}');
				$tothis   = array('=>','array(',')',"","");
				$string  .= str_replace($me, $tothis, $inthistext)."%br%";
  			}
		}
		array_push($arr, $string);
		return $arr;
	}
 
Hoe sla je het wel niet op in de database dan?
Als PHP-array? Lijkt mij niet echt handig om te doorzoeken.

Mag ik zeggen dat je nu omslachtig bezig bent door de hele JSON te parsen.
PHP heeft daar een functie voor bedacht namelijk json_decode()

JSON er in, PHP-object er uit.

Je zou wellicht ook wat met de Foursquare API kunnen doen, die heeft meer referenties aangezien het daar om op fysieke locatie gaat.

Om wat voor toepassing gaat het eigenlijk?
Van wat ik begrijp gebruik je de data maar 1x.

Het is toch niet zo dat elke keer wanneer je een pagina bezoekt er telkens dezelfde locaties moeten worden opgevraagd?
 
Hoe sla je het wel niet op in de database dan?
Als PHP-array? Lijkt mij niet echt handig om te doorzoeken.
alles is key=> value en met array_key_exist
Mag ik zeggen dat je nu omslachtig bezig bent door de hele JSON te parsen.
PHP heeft daar een functie voor bedacht namelijk json_decode()
my sorry ik beter moeten kijken om te zorgen dat dit ik het warm water niet uitvind.
JSON er in, PHP-object er uit.

Je zou wellicht ook wat met de Foursquare API kunnen doen, die heeft meer referenties aangezien het daar om op fysieke locatie gaat.

Om wat voor toepassing gaat het eigenlijk?
Van wat ik begrijp gebruik je de data maar 1x.

Het is toch niet zo dat elke keer wanneer je een pagina bezoekt er telkens dezelfde locaties moeten worden opgevraagd?
Het is om mapvieuw aan te maken enz voor mijn cms
het is om snel data te kunnen weergeven. van xml csv database en ect
naar xml,templatevieuw(gallery),tabelvieuw,mapvieuw.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan