Hi guys, Thanks I will give it a try both ways to see if I can get it going.. I might just move the icons to the same directory to see if that will make a difference also.
But one thing is that I'm getting the same error on the demo on the Google site. Is that because of what Jonathan mentioned that the images are missing? After I get the error and dismiss all I am seeing the two different icons on the map... just getting around the error that it's throwing was the issue. Is it because I have the debugger version of flash player installed? The regular player does not throw the error because it's not set up to catch them. Ultimately if I can't get the errors to go away do you think I should ignore the errors because the end user most likely will not be using the debugger version of the flash player? Thanks, David Green On Jan 12, 4:43 am, "pamela (Google Employee)" <[email protected]> wrote: > Hmm. I'm testing this demo in my Flex now, and it is working with the > properties in quotes. (I do see the AS3 object reference shows without > quotes). Is there a reason it would work for me? > > That code looks like it should work with the customIcon property > commented back in, if the images are actually there. > > You might find it easier to use something like pastebin.com to paste > code, if you can't put it with view-source enabled on a public server, > by the way. > > - pamela > > On Tue, Jan 12, 2010 at 8:51 PM, Jonathan Wagner <[email protected]> > wrote: > > wow, I just figured out the problem, it's the way they are declaring > > the object > > > private var customIcons:Object = { "restaurant": blueIcon, "bar": > > greenIcon} > > > it SHOULD be > > private var customIcons:Object = { restaurant: blueIcon, bar: > > greenIcon} > > > When declaring properties of an object you don't use quotes, sorry I > > wish I would of caught that earlier. > > > Jonathan > > > On Jan 11, 10:19 pm, David Green <[email protected]> wrote: > >> Jonathan, > > >> That's exactly what I did. I have the references correct in embed > >> statement because in Flex it throws an error when the path is > >> incorrect. Now the only thing that I see that is different in the > >> code you sent me is that the customIcon was removed from the new > >> MarkerOptions. > > >> Perhaps you will be able to see something in my code, which I'll paste > >> below. I've combined the Store Finder demo and the xml parsing > >> demo.. works perfectly except for the customIcons. I'm pulling the > >> data from a mysql database I have set up locally. > > >> Here is my code: > > >> <?xml version="1.0" encoding="utf-8"?> > >> <!-- > >> Copyright 2008 Google Inc. > >> Licensed under the Apache License, Version 2.0: > >> http://www.apache.org/licenses/LICENSE-2.0 > >> --> > >> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > >> xmlns:maps="com.google.maps.*" layout="absolute" width="100%" > >> height="100%" viewSourceURL="srcview/index.html" > >> xmlns:comp="components.*"> > >> <mx:Panel title="Google Maps API for Flash Demo" width="100%" > >> height="100%"> > >> <mx:HDividedBox width="100%" height="100%"> > >> <mx:VBox width="100%" height="100%"> > >> <mx:HBox> > >> <mx:Label > >> text="Address: " width="70"/> > >> <mx:TextInput id="address" text="Seattle WA" width="100%" /> > >> </mx:HBox> > >> <mx:HBox> > >> <mx:Label > >> text="Radius: " > >> width="70"/> > >> <mx:ComboBox > >> id="radius"> > >> <mx:dataProvider> > >> <mx:Array> > >> <mx:String>25</mx:String> > >> <mx:String>100</mx:String> > >> <mx:String>200</mx:String> > >> </mx:Array> > >> </mx:dataProvider> > >> </mx:ComboBox> > >> </mx:HBox> > >> <mx:Button > >> id="submitButton" label="Search Locations" > >> click="searchLocations(event);" > >> /> > >> <mx:HRule > >> width="100%" > >> strokeColor="0xC4CCCC" > >> shadowColor="0xEEEEEE" > >> strokeWidth="2" > >> /> > >> <mx:DataGrid id="storeLocationsGrid" dataProvider="{storeLocations}" > >> width="100%" height="100%" sortableColumns="true" itemClick="showStore > >> (event)"> > >> <mx:columns> > >> <mx:Array> > >> <mx:DataGridColumn dataField="StoreInfo"> > >> <mx:itemRenderer> > >> <mx:Component> > >> <mx:Text width="100%" selectable="false" > >> htmlText="{data.StoreInfo}"/> > >> </mx:Component> > >> </mx:itemRenderer> > >> </mx:DataGridColumn> > >> <mx:DataGridColumn dataField="Distance" width="70"/> > >> </mx:Array> > >> </mx:columns> > >> </mx:DataGrid> > >> </mx:VBox> > >> <maps:Map > >> id="map" > >> key="ABQIAAAA7QUChpcnvnmXxsjC7s1fCxQGj0PqsCtxKvarsoS- > >> iqLdqZSKfxTd7Xf-2rEc_PC9o8IsJde80Wnj4g" > >> mapevent_mapready="onMapReady(event)" > >> width="100%" height="100%"/> > >> </mx:HDividedBox> > >> </mx:Panel> > >> <mx:Script> > >> <![CDATA[ > >> import com.google.maps.LatLng; > >> import com.google.maps.LatLngBounds; > >> import com.google.maps.Map; > >> import com.google.maps.MapEvent; > >> import com.google.maps.MapMouseEvent; > >> import com.google.maps.MapType; > >> import com.google.maps.overlays.Marker; > >> import com.google.maps.overlays.MarkerOptions; > >> import com.google.maps.InfoWindowOptions; > >> import com.google.maps.services.ClientGeocoder; > >> import com.google.maps.services.GeocodingEvent; > >> import mx.controls.Alert; > >> import mx.collections.ArrayCollection; > >> import com.google.maps.controls.ZoomControl; > > >> [Bindable] private var storeLocations:ArrayCollection = new > >> ArrayCollection(); > > >> private function onMapReady(event:Event):void { > >> map.enableScrollWheelZoom(); > >> map.enableContinuousZoom(); > >> map.setCenter(new LatLng(40, -100), 4); > >> map.addControl(new ZoomControl()); > >> } > > >> [Embed(source="../assets/images/blue-dot.png")] private var > >> blueIcon:Class; > > >> [Embed(source="../assets/images/green-dot.png")] private var > >> greenIcon:Class; > > >> [Bindable] > >> private var customIcons:Object = > >> {"restaurant": blueIcon, "bar": greenIcon}; > > >> private function searchLocations(event:Event):void { > >> var geocoder:ClientGeocoder = new ClientGeocoder(); > >> geocoder.addEventListener( > >> GeocodingEvent.GEOCODING_SUCCESS, > >> function(event:GeocodingEvent):void { > >> var placemarks:Array = event.response.placemarks; > >> if (placemarks.length > 0) { > >> searchLocationsNear(placemarks[0].point); > >> } > >> }); > >> geocoder.addEventListener( > >> GeocodingEvent.GEOCODING_FAILURE, > >> function(event:GeocodingEvent):void { > >> Alert.show("Geocoding failed"); > >> }); > >> geocoder.geocode(address.text); > >> } > > >> public function searchLocationsNear(center:LatLng):void { > >> // var searchUrl:String = 'http://imagine-it.org/storelocator/ > >> phpsqlsearch_genxml.php?lat=' + center.lat() + '&lng=' + center.lng() > >> + '&radius=' + radius.text; > >> var searchUrl:String = 'http://localhost/mapProject/connections/ > >> genxml.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' > >> + radius.text; > >> var xmlString:URLRequest = new URLRequest(searchUrl); > >> var xmlLoader:URLLoader = new URLLoader(xmlString); > >> xmlLoader.addEventListener("complete", parseLocationsXml); > >> } > > >> public function parseLocationsXml(event:Event):void{ > >> map.clearOverlays(); > >> storeLocations.removeAll(); > > >> var markersXML:XML = new XML(event.target.data); > >> var markers:XMLList = markersXML..marker; > >> var markersCount:int = markers.length(); > >> if (markersCount == 0) { > >> map.setCenter(new LatLng(40, -100), 4); > >> Alert.show("No stores found. Try a different address"); > >> return; > >> } > >> var bounds:LatLngBounds = new LatLngBounds(); > >> for (var i:Number = 0; i < markersCount; i++) { > >> var markerXml:XML = markers[i]; > >> var name:String = markerx...@name; > >> var address:String = markerx...@address; > >> var distance:Number = new Number(markerx...@distance); > >> var type:String = markerx...@type; > >> var latlng:LatLng = new LatLng(markerx...@lat, > >> markerx...@lng); > >> var storeInfo:String = "<b>" + name + "</b>\n<br/>" + > >> address; > >> var marker:Marker = createMarker(latlng, name, storeInfo, > >> type); > >> storeLocations.addItem({StoreInfo: storeInfo, Distance: > >> distance.toFixed(2), Marker: marker}); > >> bounds.extend(latlng); > >> // customIcons[type].markers.push(marker); > >> map.addOverlay(marker); > >> } > >> storeLocations.refresh(); > >> map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel > >> (bounds)); > >> } > > >> public function createMarker(latlng:LatLng, name:String, > >> storeInfo:String, type:String): Marker { > >> var marker:Marker = new Marker(latlng, new > >> MarkerOptions > >> ({iconOffset: new Point(-16, -32)})); > >> // var marker:Marker = new Marker(latlng, new > >> MarkerOptions > >> ({icon: new customIcons[type], iconOffset: new Point(-16, -32)})); > >> //var storeInfo:String = "<b>" + name + "</b> > >> <br/>" + > >> address; > >> marker.addEventListener(MapMouseEvent.CLICK, > >> function > >> (e:MapMouseEvent):void { > >> marker.openInfoWindow(new InfoWindowOptions > >> ({contentHTML:storeInfo})); > >> }); > >> return marker; > >> } > > >> public function showStore(event:Event):void { > >> var marker:Marker = storeLocationsGrid.selectedItem.Marker; > >> marker.dispatchEvent(new MapMouseEvent(MapMouseEvent.CLICK, > >> marker, marker.getLatLng(), true, false)); > >> } > > >> ]]> > >> </mx:Script> > >> </mx:Application> > > >> On Jan 11, 6:25 pm, Jonathan Wagner <[email protected]> wrote: > > >> > Hey David, > > >> > you could just make sure the embed sources to the custom > > ... > > read more »
-- You received this message because you are subscribed to the Google Groups "Google Maps API For Flash" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-maps-api-for-flash?hl=en.
