みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
すみません、1/28にお尋ねした本件、himadaneeさんから「Webビューアの設定は空にしておいて、スクリプトでURLを設定すれば、大体間に合うのでは。」
とのご回答を得たのですが、URLの設定?(指定?)が上手く行きません。(その他?も含め)‥‥昨日の同題投稿、間違えて「解決」にしてしまっていますが、この投稿への前段です。
(今回、YahooMAPに変更の上、下記内容でFileMakerProV16(Win10/MS-Edge)に埋め込みたいと思うのですが、素人で知能無き為上手く行きません。どなたかご指導願えませんでしょうか。 ※YahooMAPの方がGoogleMAPより使い易いので)
スクリプトステップ設定内容(#6はURLを閉じて、次のレコードに移動したい=>としたいのですが‥)
1.レイアウト切り替え[「名刺管理簿」];アニメーション無し]
2.全レコ-ドを表示
3.検索モードに切り替え[一時停止:オン]
4.URLを開く[ダイアログあり:オン;
https://map.yahoo.co.jp/place?ac=16201& … topography
5.スクリプト一時停止/続行[制限時間なし]
6.現在のスクリプト終了[テキスト結果:? ]
※本来は「URLを閉じて、次のレコードに移動」にしたい。
地図らしきものがWebビューア画面に表示されているのですが、全く内容見えません。
よろしくご指導願います。
Offline
まず、FM16(というかFM19の初期まで)のWebビューアは、OSのブラウザとは無関係にIE相当の埋め込みブラウザなので、最新のサイトが正常に表示される保証はありません。
なので、「急に表示不可能になるかもしれないがとりあえずWebビューアで表示する」か、「FMのウィンドウ内に埋め込むのはあきらめて、外部のブラウザで表示する」かを、選択しなくてはいけません。
>4.URLを開く
これはWebビューアでなく外部のアプリ(URLに関連付けされたアプリ)で開きますので、その後はFMからは基本的に操作不可能になります。
他のソフトを使ってなくてブラウザを閉じればFMに戻るでしょうけど...
Webビューアで開きたければ「Webビューアの設定」ステップです。
himadaneeさん、早速のご回答ありがとうございます。
>>4.URLを開く
これはWebビューアでなく外部のアプリ(URLに関連付けされたアプリ)で開きますので、その後は
>「FMのウィンドウ内に埋め込むのはあきらめて、外部のブラウザで表示する」かを、選択しなくてはいけません。
そうなのですか、Webビューアでの地図表示は、名簿dataを見ながらの表示なので捨てがたいものがあります。→→Webビューアでの表示はGoogleMAPとします。
YahooMAPも捨てがたいので、別のウインドウ(Ms-Edge)で開く事にしたいと思います。※お手数をおかけし申し訳ありません。
この場合、質問に記載(上述の)しているスクリプトでよろしいでしょうか?、そして、住所フイールドとの関連付けはどの様にすれば良いでしょうか?。
https://map.yahoo.co.jp/place?ac=16201& … topography
のlat、lonが指定住所を表していると思うのですが、FMの住所フイールドとの関連付け方法が分かりません、ご教示願えませんでしょうか?。
Offline
住所じゃなく緯度経度では?
himadaneeさん
>住所じゃなく緯度経度では?
そうです。住所を表示する経度緯度のですね。
‥‥と言う事は、住所からこの経度緯度値を取得?、変換?すれば地図表示できるのですね。
‥‥この取得変換方法は?。
‥‥取得変換計算?(式?)
YahooMAPの地図埋め込みサイトを見ているのですが、理解できないのです。
https://map.yahoo.co.jp/promo/embeddedm … eter_place
地図サイズ(zoom)などのHTMLパラメータの説明がありますが、肝心の住所との連携するコードが記載されていない‥‥など、
自分にこれらを理解する知・能力が無いのはよく分かっているのですが‥‥高望みでしょうか?。諦めなければならないのでしょうか?。
Offline
以下のAPIで、経度緯度が取得できるようです。
Yahoo!ジオコーダAPI - Yahoo!デベロッパーネットワーク
https://developer.yahoo.co.jp/webapi/ma … coder.html
Offline
qb_dp さん
ご回答ありがとうございます。
以前お世話になりましたね。その節はありがとうございました。
ご指摘のURLページは見ております。残念ながらFMとの連携させる知識が無いので実現できず、本スレッドを建てた次第です。
現在、試行錯誤しているのですが、目下次のスクリプトで、YahooMAPを表示させれたのですが、連携させている住所フイールドと全く関係のない(別範囲の)地図が表示されるのです。
======================
URLを開く
"https://map.yahoo.co.jp/embedmap/V3/? & zoom=17 & cond=search; q= & 名刺管理簿::住所 & 名刺管理簿::住所2"
======================
なお、参考までにGoogleMAPでは
======================
URLを開く
"http://local.google.co.jp/maps?" & "q=" & 名刺管理簿::住所 & 名刺管理簿::住所2
======================
で正常に地図表示されています。※YahooMAPの方が利便性が高いので、YMAPで実現したい。
ご指導のほどお願いいたします。
Offline
Yahoo!ジオコーダAPI - Yahoo!デベロッパーネットワーク
https://developer.yahoo.co.jp/webapi/ma … coder.html
上記ページに サンプルリクエスト が載っています。
URLから挿入 で、以下のようにすれば、良いのでは。使ったことないのでそれ以上は分かりません。
"https://map.yahooapis.jp/geocode/V1/geoCoder?appid=<あなたのアプリケーションID>&query=" & GetAsURLEncoded ( "東京都港区六本木" )Offline
qb_dp さん
ご回答ありがとうございます。ご指示内容に基づきスクリプト内容を次の通りとしました。
URLを開く
https://map.yahooapis.jp/geocode/V1/geoCoder?appid=<Yahoo登録ID>&query=" & GetAsURLEncoded( "名刺管理簿::住所 & 名刺管理簿::住所2" )
結果、「この XML ファイルには、スタイル情報が関連付けられていないようです。ドキュメントツリーを以下に示します。」とのエラー表示です。
このメッセージ以外は空白画面です。ドキュメントツリーを示すとありますが、「<エラー></エラー>表示」でクリックできません。
なお、Encodedの後ろの(、)を削除すると「テーブルがありません」とのFMからのエラー表示となります。※テーブル=名刺管理簿です。
Offline
Yahoo!ジオコーダAPIでは、地図表示は出来ないと思います。・・・但し、最近の状況は分かりません。
2020年10月31日(土)で下記のサービスを終了しているので
■終了対象API、SDK
・Yahoo! JavaScriptマップAPI
・Yahoo!スタティックマップAPI
・Yahoo! iOSマップSDK
・Yahoo! AndroidマップSDK
・経路地図API
Yahoo!ジオコーダAPIで出来ることは
概要
Yahoo!ジオコーダAPI(以下、ジオコーダAPI)では、キーワード検索の機能を提供します。
住所を指定して、その位置情報(緯度、経度)を出力します。
にあるように例えば下記のようにして緯度、経度をJSON形式で出力等です。
"https://map.yahooapis.jp/geocode/cont/V1/contentsGeoCoder?output=json&appid=<あなたのアプリケーションID>&query=" & 地図::住所多分下記のような形で
"https://map.yahoo.co.jp/search?lat=" & 地図::緯度&"&lon="&地図::経度&"&zoom=13&maptype=basic"地図表示出来るが・・・
webサイトの住所検索機能を使わない限り、mapfanも座標から表示するしかないし,ゼンリンの場合は下記の形で
"https://www.its-mo.com/search/freeword/" & 地図::住所 & "+"
で検索結果の住所候補を呼び出しそこから地図表示の形になるなどどれも簡単には行きません。
住所等から表示等の多彩なマップ表示をお望みなら「MapBox」も・・YOLP(地図)のサービス終了に伴い移行先として勧められたが私はそこまでするほどの必要性がなかったので移行せずLeaflet(Web地図サービスで使われるオープンソースのJavaScriptライブラリ)を使い続けています。
アイコンで示すことを含めこちら方がいいかな?
"https://map.yahoo.co.jp/place?lat=" & 地図::緯度&"&lon="&地図::経度&"&zoom=18&maptype=basic"koko009 さん、ありがとうございます。
>2020年10月31日(土)で下記のサービスを終了しているので
‥‥は存じています。ただ、次の通り2022年12月23日更新として、
地図の埋め込み(https://map.yahoo.co.jp/promo/embeddedmap/index.html#parameter_place)
Yahoo!地図では「地図の埋め込み」機能を使うと、ブログやサイトに地図を表示することができます。
2022年12月23日更新/地図上の表示を調整できるようになりました。/URLパラメータを指定することで、情報パネルの開閉状態やピンの表示位置を変更できます。
‥‥とありますので、何とか地図表示できないかと、挑戦?しているところです。
※自分にskillが無いのに挑戦と言えないのですが‥‥。ご助言・ご指導を期待しているところです。
ご回答の#11/#12はいずれも地図は表示されますが、先のレスと同様、全く関係ない場所の表示(地図)です。
#10は「緯度、経度をJSON形式で出力等です」とあり、使い方が全く分かりませんので試行していません。
Offline
ジオコーダAPIとは、下記のスクリプトでヤフーのAPIサイトに住所を投げその結果(この場合は座標)を取得しフィールドに出力する事です。郵便番号APIなら郵便番号をサイトに投げ住所を取得するみたいに・・・
URL から挿入 [ $$yb; "https://map.yahooapis.jp/geocode/cont/V1/contentsGeoCoder?output=json&appid=<あなたのアプリケーションID>&query=" & 地図::住所 ] [ 選択; ダイアログなし ]
フィールド設定 [ 地図::表示座標; Let([lat=GetValue ( Substitute (JSONGetElement ( $$yb ; "Feature[0].Geometry.Coordinates") ; "," ; ¶ );2);
lag=GetValue ( Substitute (JSONGetElement ( $$yb ; "Feature[0].Geometry.Coordinates") ; "," ; ¶ );1)];lat & "," & lag) ]例えば沖縄県庁の住所(沖縄県那覇市泉崎1丁目2−2)で座標を取得すれば座標は・・26.21152075,127.68114489となり
この座標の値が緯度経度として別々のフィールドに表示されているとして
下記の地図表示スクリプトを実行すれば、沖縄県警察本部の表示の上にマーカー付いた地図が表示されます。
Web ビューアの設定 [ 処理: リセット ]
Web ビューアの設定 [ オブジェクト名: "viewer1"; URL: "https://map.yahoo.co.jp/place?lat=" & 地図::緯度&"&lon="&地図::経度&"&zoom=16&maptype=basic" ]
ウインドウ内容の再表示なお「地図の埋め込み」等では住所から地図表示する話ではなく
「地図の埋め込み」にて表示されたHTMLソース(座標を指定して作成)にデフォルト以外のパラメータ(例えばmaptypeをtwoTonesにしてモノトーンで表示等)を利用して地図上の表示を調整する方法が可能ですとあるだけです。そのため住所ではなく座標がパラメータの必須条件になっているのです。
なおジオコーダAPIを使い座標を取得する場合、「Yahoo! JAPANが提供するWeb APIの利用には制限が設けられています。」とありますのでご注意を!!
koko009 さん、度々ありがとうございます。遅くなり申し訳ありません。
>ジオコーダAPIとは、下記のスクリプトでヤフーのAPIサイトに住所を投げその結果‥‥略
1つ目のコード部
1.この座標値を受け取る為の「ジオコーダフイールド」を設ければいいのでしょうか?。
2.そして、このフイールドの指定スクリプトがご指示の「URLから挿入‥‥以下略」でよろしいでしょうか?。
3.また、「地図::住所」には私のテーブル::フイールドである”名刺管理簿::住所 & 名刺管理簿::住所2" を、
4.<あなたのアプリケーションID>にはYahooに登録した同名ID(相当長い文字列ですが)に置き換える、
5.「フィールド設定 [ 地図::表示座標]」にも同じ、”名刺管理簿::住所 & 名刺管理簿::住所2" とするのでしょうか?。チョット違っているかな?。
6.この結果「ジオコーダフイールド」に座標値が表示される、と考えていいのですね。
2つ目コード部
>Web ビューアの設定 [ 処理: リセット ]
これはスクリプトコマンドでしょうか?。
Webビューアの設定計算式指定は"https://map.yahoo.co‥‥以下略 とし、
「&lat="地図::緯度&"&lon="&地図::経度”」のところは &lat=”名刺管理簿::住所" 、&"lon=のところは &lat="名刺管理簿::住所2" なのでしょうか??。
すみません、手取り足取りで申し訳ありません。
Offline
追伸です。
>Yahoo! JAPANが提供するWeb APIの利用には制限が設けられています。」とありますのでご注意を!!
ありがとうございます。この事については
1.個人利用に於いて、24Hrに50,000件以上の利用(ビュー?)は有料とありました。自分の名刺管理簿は約3600レコードですので問題ないと考えています。
利用する時は、1日平均数件程度のビューになります。ゼロの日が多いです。
Offline
1日数件程度のAPI利用としてなら座標フィールドを設ける必要はありません。
最初のフィールド設定は不要ですし次に前提としている緯度経度の2つのフィールドも不要です。スクリプトを下記のように1つに纏めればいいだけです。
URL から挿入 [ $$yb; "https://map.yahooapis.jp/geocode/cont/V1/contentsGeoCoder?output=json&appid=<相当長い文字列のアプリケーションID>&query=" & 名刺管理簿::住所 & 名刺管理簿::住所2 ] [ 選択; ダイアログなし ]
スクリプト一時停止/続行 [ 間隔(秒): .5 ]
Web ビューアの設定 [ 処理: リセット ]
Web ビューアの設定 [ オブジェクト名: "viewer1"; URL: "https://map.yahoo.co.jp/place?lat=" &GetValue ( Substitute (JSONGetElement ( $$yb ; "Feature[0].Geometry.Coordinates") ; "," ; ¶ );2)&"&lon="&地GetValue ( Substitute (JSONGetElement ( $$yb ; "Feature[0].Geometry.Coordinates") ; "," ; ¶ );1&"&zoom=16&maptype=basic" ]
ウインドウ内容の再表示但し、スクリプト一時停止の時間は通信状況によるので最適な時間は分かりかねます。
また、利用方法まで分かりませんが、住所レコードとして登録するときに座標も登録しておけば後々便利ですし「スクリプト一時停止」ステップも考慮することもない。ジオコードAPIを使用しなくても必要な座標は手作業ですが例えばGoogleの地図からも代表的な場所はWikiでも得ることが出来ます。
なお「Web ビューアの設定 [ 処理: リセット ]」スクリプトステップを使うのは、連続してWeb ビューアを使うと時として前のデータが残ることがあるための予防措置です。
koko009 さん、ありがとうございます、遅くなりました。
↑上のスクリプトコードcopyし、新規スクリプトに張り付けたのですが、先頭部(URL から挿入が反転色となり)で「指定されたテーブルが見つかりません」のエラーが出て先に進めません。
全くの素人ですみません。お恥ずかしながら(-_-;)です。ご指導の程願います。
なお、スレ建て時の説明が不足していたかと思うのですが、このYahooMAPはMs-Edgeで起動する全画面表示にしたいです。Webビュ-アによる地図表示は「勤務先住所-1/-2」フイールドからのGoogleMAPで使っています。※ご指導のコードの ”Webの設定” は関係ないのであれば、無視してください。
Offline
追伸です、
>なお「Web ビューアの設定 [ 処理: リセット ]」スクリプトステップを使うのは、連続してWeb ビューアを使うと時として前のデータが残ることがあるための予防措置です。
ひょっとすると、現在WebビューアでGoogleMAPを表示させていますが、レコードを移動する際、時間が掛かっております。FM終了時も、感覚的にはこれら多数表示した表示地図を閉じている時間なのではないかな?と思っています。この問題も、本件(このスレッド)解決後質問したいなぁ!?、と考えているのですが‥‥。
Offline
web ビューアでどちらも使い分けていいと思うのですが、考えそれぞれですので
>このYahooMAPはMs-Edgeで起動する全画面表示にしたいです。
なら、「Web ビューアの設定 [ 処理: リセット ]」以下のスクリプトステップの代わりに「URL を開く」のステップに代えればいいだけです。
ジオコーダAPIの部分はどこをどうコピペしたのか分かりませんが
「URL から挿入」のスクリプト設定の
「ターゲット指定」で変数を設定(今回の場合出力されたJISONの値を変数として納めるため)・・・今回は後のこと考えグローバル変数に設定しています。
「URL を指定」でURLに
"https://map.yahooapis.jp/geocode/cont/V1/contentsGeoCoder?output=json&appid=<相当長い文字列のアプリケーションID>&query=" & 名刺管理簿::住所 & 名刺管理簿::住所2とエンコード欄チェック
だけ。
>レコードを移動する際、時間が掛かっております。FM終了時も、
に関してですがWeb ビューアの動作は開く祭に相手のあることですから開くのにそれぞれ時間が掛かるのは分かりますにGoogleMAPを常に開くようにしていればなおのこと、そのためアドレスに何も書かないで必要に応じWeb ビューアの設定 [URL・・]スクリプトで開くようにする事も・・・
FM終了時に時間が掛かるのはまた別の問題かと思いますが
間違っていた、最初の方にちゃんと指摘があったのでブラウザー表示を選んでたのですね。
そこで試したところ、FM17のIE相当のレンダリングエンジンではyahoo地図をweb ビューアでは表示できなかった、mapfanやゼンリンは問題なく開けるが国土地理院では下記のメッセージが出た。
地理院地図は Microsoft Edge, Google Chrome, Mozilla Firefox, Apple Safari でご利用ください。
(これらのブラウザでこのメッセージが表示されている場合は、キャッシュデータの削除をお試しください。)
余計なことを書き申し訳ありませんでした。
YOLP(地図)の一部サービスの終了以来座標の取得は主にleafletのmap上のマーカーの位置で行っていたので、今回、Googlemapでの右クリックによる位置情報の取得方法も変わっていて戸惑うなど試してみないと分からないことが多すぎる。
書き忘れましたが国土地理院に関しFM17のweb ビューアで開けないのは「地理院地図(電子国土Web)」であってleafletで地図タイルに地理院タイルを使う分には別に問題はありません。
koko009 さん
度々のご指導ありがとうございます。先ほどから試行してみたのですが‥‥、
レイアウト切り替え [「名刺管理簿」; アニメション:なし]
URL 開く[ダイアログあり:オン;
"https://map.yahooapis.jp/geocode/cont/V … ID>&query=" & 名刺管理簿::住所 & 名刺管理簿::住所2
‥‥で、FMにエラー無く、記述できました。ただ実行すると
「データの取得に失敗しました。指定された情報が見つかりませんでした。」
とのエラーメッセージです。地図はYahooMAPに間違いありません。地図右上にYahooJapanの文字表示あります。
※GoogleMAPの場合は画面下にGoogeleのロゴがあります。
経度緯度の「lon/lot」の取得ができていない?、‥‥のでしょうか?。
データの取得に失敗しました。
指定された情報が見つかりませんでした。
Offline
ちょっと混乱しているようですが、
住所から経緯度取得(URLから挿入)
それを指定して地図を表示(URLを開く)
の2段階が必要なのは変わらないのでは。
経緯度は住所が決まればずっと同じなので、住所フィールド変更時にフィールドに保存しておけば手間が減るでしょう。
混乱しているところに申し訳ないが、ジオコードAPIを使う以外の方法を
今あるテーブルに座標フィールド(テキスト)を追加しておいて、web ビューアに住所からGoogleMAPが表示されたらマーカーが示している位置にカーソルを置き右クリックして一番上に表示されている座標(十進法)をクリックする。これでコピーが完了(下に「クリップボードにコピー完了」のメッセージがでます。)
次に先程の座標フィールドに貼り付けます。但しその値は「33.9130411, 134.5065」で経度の頭にスペースが付いています。問題にならない場合もありますが時として分離等の時読み込めないことも起きますのでなるのでなるべく取り除く事がポイント。
「URL 開く」のURLに
"https://map.yahoo.co.jp/place?lat=" &
GetValue ( Substitute ( 名刺管理簿::座標 ; "," ; ¶);1)
&"&lon="&
GetValue ( Substitute ( 名刺管理簿::座標 ; "," ; ¶);2)
&"&zoom=16&maptype=basic"とすればいい。
何故これを勧めるかといえば、・・・住居表示から得た座標が必ずしも目的の建物と限らないためこれでカーソルの置き方で調整が効く(例えば沖縄県庁舎と県警本部の位置が違うのにジオコードでは県警本部を示す。住所は同じだから間違いではないがちょっと見た目に違和感)
どうでもいい話だがYOLP(地図)の昔からジオコーダAPI含め座標が経度緯度となっており他の座標(十進法)とはちょっと違っていてよく間違えた事もあった。
[ Generated in 0.009 seconds, 7 queries executed - Memory usage: 682.76 KiB (Peak: 715.66 KiB) ]