2010-06-05 3 views
0

J'ai trouvé une solution pour cela sur la carte Google map api, et j'ai apporté les modifications suivantes comme mentionné dans ce document.Alternative à google map api, pour que je puisse l'utiliser sur un site Web HTTPS/SSL crypté

1.Utilisez l'API Google Maps pour Flash version 1.9a ou ultérieure.

2.Ajoutez ce qui suit dans votre application Flash avant l'instanciation de la carte: Security.allowInsecureDomain ("maps.googleapis.com");

Ref: http://code.google.com/apis/maps/faq.html#flash_ssl

Mon code ressemble à ceci, après les changements:

<mx:TitleWindow verticalAlign="middle" horizontalAlign="center" 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:maps="com.google.maps.*" 
    width="1000" height="600" layout="absolute" backgroundAlpha="0" borderAlpha="0" borderThickness="0" 
    showCloseButton="true" close="PopUpManager.removePopUp(this);"> 

<mx:VBox width="70%" height="100%" > 
       <maps:Map 
        id="map" 
        key="ABQIAAAA0L1JEoR6rWjh-BBQnLMtMBSVuZ5VlaqlIqiYPFMK_I5M2UTmHhSq_BJxLHiYcTDW9RxSF6HewNY7uA" 
        mapevent_mapready="onMapReady(event)" 
        width="100%" height="100%" /> 
      </mx:VBox> 
<mx:Script> 
     <![CDATA[ 
      //import flashx.textLayout.formats.Direction; 
      import mx.effects.AddItemAction; 
      //import flashx.textLayout.factory.TruncationOptions; 
      import mx.controls.Alert; 
      import mx.managers.PopUpManager; 
      import mx.rpc.events.ResultEvent; 
      import com.adobe.serialization.json.JSON; 

      import flash.events.Event; 
      import com.google.maps.*; 
      import com.google.maps.overlays.*; 
      import com.google.maps.services.*; 
      import com.google.maps.controls.ZoomControl; 
      import com.google.maps.controls.PositionControl; 
      import com.google.maps.controls.MapTypeControl; 

      import com.google.maps.services.ClientGeocoderOptions; 
      import com.google.maps.LatLng; 
      import com.google.maps.Map; 
      import com.google.maps.MapEvent; 
      import com.google.maps.MapMouseEvent; 
      import com.google.maps.MapType; 
      import com.google.maps.services.ClientGeocoder; 
      import com.google.maps.services.GeocodingEvent; 
      import com.google.maps.overlays.Marker; 
      import com.google.maps.overlays.MarkerOptions; 
      import com.google.maps.InfoWindowOptions; 

      private function onMapReady(event:MapEvent):void { 
      Security.allowInsecureDomain("maps.googleapis.com"); 
       map.setCenter(new LatLng(41.651505,-72.094455), 13, MapType.NORMAL_MAP_TYPE); 
       map.addControl(new ZoomControl()); 
       map.addControl(new PositionControl()); 
       map.addControl(new MapTypeControl()); 

       map.enableScrollWheelZoom(); 
       map.enableContinuousZoom(); 

      } 
]]> 
    </mx:Script> 
</mx:TitleWindow> 

Mais je reçois toujours l'erreur suivante en utilisant ceci: L'URL demandée/mapsapi/publicapi file = flashapi & url = https% 3A% 2F% 2Fvirtual.c7beta.com% 2Findex_cloud.swf & key = ABQIAAAA0L1JEoR6rWjh-BBQnLMtMBTW_Qkp6J0z76Etz3qzo8Hg3HdUQhSnD6lqp53NB0UrBmg5Xm2DlazWqA & v = 1,18 & FLC = xt n'a pas été trouvé sur ce serveur.

Toutes les suggestions à ce que je fais mal ici, que dois-je faire pour que cela fonctionne.

Cordialement zee

+0

Je suppose que cette question est périmée. Google Maps v3 permet aux comptes gratuits d'utiliser SSL, alors que les versions antérieures nécessitaient un compte payant. Voir developers.google.com/maps/faq#ssl – rjmunro

Répondre

1

Est-ce que votre ligne de sujet ont une relation à votre question? Je tire un peu dans l'obscurité ici, mais en fonction de l'erreur que vous voyez, il semble que ce soit un ping sur votre serveur local; pour l'URL; pas le serveur distant. Avez-vous exécuté en mode débogage pour savoir quelle ligne a l'erreur et ce qui se passe exactement à ce moment/

Pour répondre à votre sujet, je sais que ce sont des variantes de Google Maps. Je sais que l'un est ESRI:

Je ne sais pas si, ou comment, ils supportent SSL.

1

Vous faites confiance au domaine non sécurisé (Security.allowInsecureDomain) trop tard, vous devez le faire avant d'instancier la carte. J'ai eu le même problème, faire confiance avant d'instancier la carte l'a résolu pour moi.

Questions connexes